Menggulung Dadu
Jadi, saya melempar dadu beberapa waktu lalu dan memikirkan tantangan.
Diberikan kubus dengan jaring yang diambil dari input dan daftar gerakan, cari kotak di bagian bawah di bagian akhir.
Saya akan menggunakan gambar ini untuk contoh di sini.
Memasukkan
Anda menerima string dengan daftar gerakan. String hanya berisi huruf ASCII kapital N, S, W, dan E. Ini terkait dengan menggulung kubus satu langkah ke arah itu.
Dalam gambar, satu N akan membuat wajah bagian bawah 6. Dalam gambar ini, Utara jauh dari kamera, Selatan menuju, Timur kanan, dan Barat kiri.
Anda juga menerima string dalam format berikut: 1P 2P 3P 4P 5P 6P, di mana setiap P adalah posisi dari N, S, W, E, T, dan B. T & B berada di bagian bawah dan atas.
Angka-angka adalah wajah dengan nomor itu, dan surat itu mewakili posisi wajah itu. Jika tidak jelas, jaring akan selalu dipesan dengan nomor tersebut, jadi 1P 2P 3P 4P 5P 6P, tidak pernah 2B 1T 3N 4S 5W 6E.
Posisi dalam gambar adalah 1S 2B 3E 4W 5T 6N.
Keluaran
Program Anda harus menampilkan angka yang mewakili sisi bawah.
Uji Kasus
(nothing), 1S 2B 3E 4W 5T 6N -> 2
N, 1S 2B 3E 4W 5T 6N -> 6
NS, 1S 2B 3E 4W 5T 6N -> 2
NWS, 1S 2B 3E 4W 5T 6N -> 2
NWSNWS, 1S 2B 3E 4W 5T 6N -> 2
NWSS, 1S 2B 3E 4W 5T 6N -> 3
NNNNNN, 1S 2B 3E 4W 5T 6N -> 5
SNWEEWS, 1N 2T 3E 4W 5B 6S, 6
SNEEWS, 1N 2T 3W 4S 5B 6E, 4
Peraturan Lainnya
Anda juga dapat mengasumsikan kubus berada di bidang datar yang tak terbatas, mungkin dengan semacam gesekan.
Celah standar tidak diizinkan, meskipun saya tidak dapat menemukannya.
Untuk input yang tidak valid, kode Anda dapat melakukan apa pun kecuali memulai kiamat.
Karena program ini harus sesuai dengan dadu saya, itu harus sekecil mungkin. Saya menghitung dalam byte, dengan beberapa pengecualian untuk bahasa seperti Folder .
(nothing) -> 2
rata - rata tidak ada jaring disediakan, atau haruskah ada jaring di suatu tempat?