Elektrikli garaj kapım şöyle çalışıyor:
- Kapıyı kontrol etmek için sadece bir buton var
- Kapı tamamen kapanırsa ve düğmeye basarsam, kapı açılmaya başlar. Tamamen açmak 10 saniye sürer.
- Kapı tamamen açıksa ve düğmeye basarsam, kapı kapanmaya başlar. Tamamen kapanması 10 saniye sürer.
- Kapı açılma veya kapanmadan kısmen geçiyorsa ve düğmeye basarsam, kapı durur ve kısmen açık bırakılır.
- Kapı hareket etmeyi durdurduğunda, ya açık ya da kapalı bir hareketin otomatik olarak tamamlanmasından ya da düğmeyi bir hareket boyunca yarıya iterek manuel olarak kesilmesinden sonra, mekanizma tersine dönecek ve bir sonraki hareket için yönünü hatırlayacaktır.
- Kapı durdurulduğunda ancak kısmen açıldığında düğmeye basılırsa, eylemi tamamlaması için geçen süre, işlemi tamamlamak için hareket etmesi gereken miktarla orantılı olarak 10 saniyelik bir kesir olacaktır.
Başlangıçta kapının tamamen kapalı olduğunu varsayalım.
Tamsayıların bir giriş listesi verilecektir. Bu tamsayılar, kontrol düğmesine art arda basıldığında arasında beklediğim saniye sayısıdır.
İki şeyi çıktıla:
- Tüm düğmelere basıldığında ve kapı sabit bir duruma geldiğinde kapının durumunu gösteren bir yüzde.
%
Sembol çıkışı isteğe bağlıdır. - Bir sonraki düğmeye basıldığında kapının hangi yöne gideceğine dair net bir gösterge. Bu,
up
/down
,U
/D
,+
/-
,1
/0
veya seçtiğiniz ne olabilir.
Açık veya kapalı bir işlemi tamamlamak için kapının 10 saniyeden daha az sürdüğünü varsayabilirsiniz.
Örnek girişler:
<empty list> # button was pushed just once
20 # button was pushed twice with 20 seconds between
10
5
20 20
10 10
5 5
1 2 3
8 9 10 11
11 10 9 8 7
Yukarıdaki girişlere karşılık gelen beklenen çıkışlar
100% D
0% U
0% U
50% D
100% D
100% D
0% U
100% D
0% U
20% U
Son testin çalışılmış örneği
- Kapı kapalı başlar. Düğmeye basıldı
- 11 saniye bekleyin. Kapı tamamen açılıyor. Düğmeye basıldı.
- 10 saniye bekle Kapı tamamen kapanıyor. Düğmeye basıldı.
- 9 saniye bekleyin. Düğmeye basıldı. Kapı% 90 açıkta durur.
- 8 saniye bekleyin. Düğmeye basıldı. Kapı kapanmaya başlar.
- 7 saniye bekleyin. Düğmeye basıldı. Kapı% 20 açık durur. Bir sonraki yön yukarı olacak.