Şu anda işimde yeni bir binaya taşındık. En son teknoloji olması gerekiyordu ve otomatik ışıkları, otomatik panjurları var ve şimdi bu şehirdeki en çevre dostu bina olarak biliniyor.
Ancak, o kadar da işe yaramaz .. Yuvarlanan panjurlar bazen bulutlu günlerde ve güneş parlamaya başladığında yükselir ve ışıklar bazen her 5-10'da bir açıp kapatarak disko etkilerine neden olur. dakika. Ayrıca, bu panjurları kontrol etmek için manuel bir yolumuz yok, ne de sıcaklık, ama ışıklar için bir uzaktan kumanda var.
Ancak bu uzaktan kumandalar kullanım kılavuzu olmadan geldi ve 20'den az düğme içeriyor.
Not: Bu meydan okumayı 1.5 ay önce Sandbox'ta yazdım. Şu anda, uzaktan kumandaların nasıl çalıştığını biliyoruz ..
Bu bina hakkında büyük bir avantaj, dışarıda 30+ derece Celcius, ama içinde her zaman aynı 21 oda sıcaklığında kalır.
Yani, bu girişti ve ışıkların uzaktan kumandası bu zorluğa ilham verdi.
Meydan okuma:
Diyelim ki başlangıçta bir lambamız kapalı:
L
Sonra her türlü düğmeye basıyoruz ve daha sonra lambanın durumunu çıkarıyoruz.
Lamba için uzaktan kumandanın farklı fonksiyonları için aşağıdaki numaraları kullanıyoruz. Bu sayının önünde eksi sembolü olduğunda, bunun tam tersini yaparız.
1
= AÇIK;-1
= KAPALI.2
= Gücü% 25 artırın;-2
= Gücü% 25 azaltın.3
= Yayılmayı% 50 artırın;-3
= Yayılmayı% 50 azaltın.4
= Işık türünü değiştirme.
Yani, bunların hepsi oldukça belirsiz, bu yüzden her şeyin ne anlama geldiğini biraz daha derinlemesine inceleyelim:
Yani, -1
(KAPALI) oldukça açıktır ve 1
başlangıç AÇIK durumuna (% 2
50 ve% 50 için 3
) gider :
//
//
L ====
\\
\\
2
ve -2
ışığın ne kadar yol kat ettiği ( ==
her% 25'e eklenir):
0% (equal to a light bulb that is OFF)
L
25%
L ==
50%
L ====
75%
L ======
100%
L ========
3
ve -3
ışığın ne kadar uzağa yayıldığı:
0%:
L ====
50%:
//
//
L ====
\\
\\
100%:
|| //
||//
L ====
||\\
|| \\
(NOT: 2
ve 3
% 100 olduğunda , bu duruma sahip olursunuz:
|| //
|| //
|| //
||//
L ========
||\\
|| \\
|| \\
|| \\
4
ışık türünü değiştirmektir.
Default:
//
L ==
\\
After toggling (note the single space before '/' instead of two):
/
L --
\
Giriş:
Olası düğme basmalarını içeren bir giriş alırsınız. Örneğin:
12-34
Çıktı:
Girişin tüm düğmelerinden sonraki ışık lambasının durumu alt sıraya basıldığında. Yukarıdaki örnek girdi ile aşağıdaki çıktıya sahibiz:
L ------
Zorluk kuralları:
- Giriş yalnızca içeren
1234-
(ve asla-
önce4
). - Asla% 0'ın altına veya% 100'ün üzerine çıkamazsınız. Bir sayı bu sınırların ötesinde artar / azalırsa, yok sayabilirsiniz.
- Lamba kapandığında, herhangi bir eylemi göz ardı edebilirsiniz ve tekrar açıldığında ilk AÇIK durumuna geri döner (hem
2
ve hem de3
varsayılan için% 504
). Örneğin:12-1-341
sadece yukarıda belirtilen ilk AÇIK durumunu yazdıracaktır. (İPUCU:1
Giriş hariç, hariç her şeyi göz ardı edebilirsiniz-1
.) - Işığın uzunluğuna eşit olan arka boşluklar veya tek bir sondaki yeni çizgi engellenmez. Ancak gereksiz yeni satırlar eklemek değildir.
- Girdiyi tek bir dize yerine tamsayı listesi olarak almanıza izin verilir. Bunun yerine, girdi olarak
12-34
sahip olabilirsiniz[1,2,-3,4]
.
Genel kurallar:
- Bu kod golf , bayt en kısa cevap kazanır.
Kod golf dillerinin, kod yazmayan dillerle yanıt göndermenizi engellemesine izin vermeyin. 'Herhangi bir' programlama dili için mümkün olduğunca kısa bir cevap bulmaya çalışın. - Cevabınız için standart kurallar geçerlidir , bu nedenle STDIN / STDOUT, fonksiyon / yöntemi uygun parametrelerle, tam programları kullanmanıza izin verilir. Çağrınız.
- Varsayılan Loopholes yasaktır.
- Mümkünse, lütfen kodunuz için test içeren bir bağlantı ekleyin.
- Ayrıca, gerekirse bir açıklama ekleyin.
Test senaryoları:
12-34
L ------
12-1-341
//
//
L ====
\\
\\
14-3224333-2
|| //
|| //
||//
L ======
||\\
|| \\
|| \\
142-1-314-3-322
L --------
1324-2-3
/
/
L ----
\
\
134
| /
|/
L ----
|\
| \
1-2-2-214-3-3-3
L ----
4
). Sorduğunuz için teşekkürler.
1
basılıysa parametreler sıfırlanıyor mu?
134
?