Saat ini di tempat kerja saya, kami pindah ke gedung baru. Itu seharusnya menjadi canggih dan memiliki lampu otomatis, jendela gulung otomatis, dan sekarang dikenal sebagai bangunan paling ramah lingkungan di kota ini.
Namun, itu tidak benar-benar bekerja dengan baik .. Jendela gulung kadang turun pada hari berawan dan naik ketika matahari mulai bersinar, dan lampu kadang-kadang menyebabkan efek disko dengan bergantian menghidupkan dan mematikan setiap 5-10 menit. Juga, kami tidak memiliki cara manual untuk mengendalikan jendela gulung ini, atau suhunya, TETAPI kami memiliki remote untuk lampu.
Namun remote ini datang tanpa instruksi manual dan mengandung sedikit lebih dari 20 tombol melakukan semua jenis hal kecuali untuk apa yang Anda inginkan ..
PS: Saya menulis tantangan ini 1,5 bulan yang lalu di Sandbox. Saat ini kami, agaknya, tahu bagaimana remote bekerja.
Satu keuntungan besar tentang bangunan ini, berada di luar 30 derajat Celcius, tetapi di dalamnya tetap berada pada suhu 21 kamar yang sama setiap saat.
Jadi, itulah intro, dan remote control untuk lampu menginspirasi tantangan ini.
Tantangan:
Katakanlah kita awalnya mematikan lampu:
L
Kemudian kami menekan semua jenis tombol dan mengeluarkan status lampu sesudahnya.
Kami menggunakan angka-angka berikut untuk berbagai fungsi kendali jarak jauh untuk lampu. Ketika simbol minus ada di depan angka itu, kita melakukan yang sebaliknya.
1= ON;-1= MATI.2= Meningkatkan kekuatan sebesar 25%;-2= Penurunan (redup) kekuatan sebesar 25%.3= Tingkatkan spread sebesar 50%;-3= Kurangi penyebaran sebesar 50%.4= Mengalihkan jenis cahaya.
Jadi, ini semua cukup kabur, jadi mari kita sedikit lebih dalam tentang apa arti setiap hal:
Jadi, -1(MATI) cukup jelas, dan 1akan masuk ke keadaan ON awal (50% untuk 2dan 50% untuk 3):
//
//
L ====
\\
\\
2dan -2seberapa jauh perjalanan cahaya ( ==ditambahkan untuk setiap 25%):
0% (equal to a light bulb that is OFF)
L
25%
L ==
50%
L ====
75%
L ======
100%
L ========
3dan -3seberapa jauh cahayanya menyebar:
0%:
L ====
50%:
//
//
L ====
\\
\\
100%:
|| //
||//
L ====
||\\
|| \\
(CATATAN: Kapan 2dan 3keduanya 100%, Anda akan memiliki status ini:
|| //
|| //
|| //
||//
L ========
||\\
|| \\
|| \\
|| \\
4 adalah untuk mengaktifkan jenis cahaya.
Default:
//
L ==
\\
After toggling (note the single space before '/' instead of two):
/
L --
\
Memasukkan:
Anda akan menerima input yang berisi kemungkinan penekanan tombol. Sebagai contoh:
12-34
Keluaran:
Keadaan lampu lampu setelah semua tombol input ditekan sub-sekuensial. Jadi dengan contoh input di atas, kami memiliki output sebagai berikut:
L ------
Aturan tantangan:
- Input hanya berisi
1234-(dan tidak pernah-sebelumnya4). - Anda tidak akan pernah bisa di bawah 0% atau di atas 100%. Jika suatu angka akan naik / turun di luar batas ini, Anda dapat mengabaikannya.
- Ketika lampu dimatikan, Anda dapat mengabaikan tindakan apa pun dan ketika dinyalakan kembali, lampu akan kembali ke kondisi ON-awal (50% untuk keduanya
2dan3, dan default4). Sebagai contoh:12-1-341hanya akan mencetak keadaan ON awal yang disebutkan di atas. (TIPS: Anda dapat mengabaikan semuanya sebelum1input final - tidak termasuk-1.) - Jarak spasi yang sama dengan panjang cahaya atau satu garis trailing baru tidak dibatasi. Namun menambahkan baris baru yang tidak perlu tambahan.
- Anda diizinkan mengambil input sebagai daftar bilangan bulat alih-alih satu string. Jadi alih-alih
12-34, Anda bisa memiliki[1,2,-3,4]input.
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa pun'. - Aturan standar berlaku untuk jawaban Anda, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat, program lengkap. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda.
- Juga, silakan tambahkan penjelasan jika perlu.
Kasus uji:
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). Terima kasih untuk bertanya.
1ditekan, apakah parameternya diatur ulang?
134?