Dua anak saya suka bermain dengan mainan berikut:
Area berwarna dengan bentuk di dalamnya dapat disentuh dan kura-kura kemudian menyalakan area dan memainkan suara atau menyebutkan nama warna atau bentuk di dalamnya. Tombol tengah mengubah mode. Ada satu mode di mana area memainkan not musik yang berbeda ketika disentuh, dengan twist: jika anak menyentuh tiga area berturut-turut searah jarum jam, dimainkan melodi khusus 1. Jika tiga area berurutan yang disentuh ditempatkan berlawanan arah jarum jam, melodi khusus 2 dimainkan.
Tantangan
Mari kita simulasikan logika internal mainan. Diberikan string dengan 3 penekanan anak, kembalikan dua nilai yang berbeda dan koheren jika tiga penekanan tersebut untuk area yang berurutan (searah atau berlawanan arah jarum jam) dan nilai berbeda ketiga jika tidak.
Detail
- Area input akan diberi nama dengan karakter masing-masing, yang dapat menjadi warna mereka:
ROYGB
untuk merah, oranye, kuning, hijau dan biru; atau bentuknya:HSRTC
untuk jantung, kotak, bintang (R
), segitiga dan lingkaran. Kasus tidak masalah, Anda dapat memilih untuk bekerja dengan input dan output hanya dalam huruf besar atau kecil. - Program akan menerima string (atau array char atau yang setara) dengan tiga penekanan. Contoh (menggunakan warna):
RBO
,GYO
,BBR
,YRG
,YGB
,ORB
... - Program akan menghasilkan tiga nilai yang berbeda dan koheren untuk mewakili tiga hasil yang mungkin: nilai pertama jika kombinasi tidak memicu melodi khusus, nilai kedua jika kombinasi memicu melodi khusus searah jarum jam, dan nilai ketiga jika kombinasi memicu Melodi khusus berlawanan arah jarum jam. Contoh:
0
tanpa kombinasi khusus,1
untuk melodi yang dipicu oleh kombinasi searah jarum jam dan-1
untuk melodi yang dipicu oleh kombinasi berlawanan arah jarum jam. - Anda tidak perlu khawatir tentang penanganan input yang salah.
Uji kasus
Input Output // Input based on colors
--------------
RBO 0 // No special combination
GYO -1 // Counterclockwise melody triggered
BBR 0 // No special combination
YRG 0 // No special combination
YGB 1 // Clockwise melody triggered
ORB -1 // Counterclockwise melody triggered
OOO 0 // No special combination
BRO 1 // Clockwise melody triggered
Ini adalah kode-golf , jadi semoga kode terpendek untuk setiap bahasa menang!
[0,0]
,[1,0]
,[0,1]
diperbolehkan sebagai output? Saya melihat jawaban Mathematica melakukan itu, dan itu akan menghemat 3 byte dalam jawaban 05AB1E.