Labirin es telah menjadi salah satu kebutuhan pokok gim Pokémon saya sejak debut mereka di Pokémon Gold and Silver. Tugas Anda adalah membuat program yang memecahkan masalah jenis ini.
Labirin es terutama terdiri dari, seperti namanya, es. Setelah pemain bergerak ke arah di atas es, mereka akan terus bergerak ke arah itu sampai mereka bertabrakan dengan beberapa rintangan. Ada juga tanah yang dapat dipindahkan secara bebas dan akan menghentikan pemain yang bergerak melewatinya. Rintangan terakhir adalah batu. Stone tidak dapat menempati ruang yang sama dengan pemain dan jika pemain mencoba untuk pindah ke dalamnya mereka akan berhenti bergerak sebelum mereka bisa.
Anda akan menerima wadah nilai dua dimensi, seperti daftar daftar atau string yang dipisahkan oleh baris baru, yang berisi 3 nilai berbeda untuk masing-masing dari 3 jenis lantai (Es, Tanah, dan Batu). Anda juga akan menerima dua pasangan (atau dua wadah bernilai setara lainnya) yang mengindikasikan koordinat awal dan tujuan dalam labirin. Ini mungkin nol atau satu diindeks.
Anda harus mengeluarkan daftar gerakan (4 nilai berbeda dengan bijih ke N, E, S, W) yang akan menyebabkan pemain tiba di akhir saat dijalankan.
Input akan selalu memiliki batas batu yang tertutup di sekitar labirin sehingga Anda tidak perlu khawatir tentang pemain yang keluar dari labirin
Ini adalah kode-golf sehingga byte paling sedikit menang
Uji Kasus
Di sini .
akan mewakili es, ~
akan mewakili tanah, dan O
akan mewakili batu. Koordinat 1 diindeks. Setiap huruf dalam solusi mewakili arah yang dimulai dengan huruf itu (misalnya N
= Utara)
Memasukkan
OOOOO
OO.OO
O...O
OOOOO
Start : 3,3
End : 3,2
Keluaran
N
Memasukkan
OOOOOOOOOOOOOOOOO
O........O.....OO
O...O..........OO
O.........O....OO
O.O............OO
OO.......O.....OO
O.............OOO
O......O.......~O
O..O...........~O
O.............OOO
O.......O......OO
O.....O...O....OO
O..............OO
OOOOOOOOOOOOOO~~O
OOOOOOOOOOOOOOOOO
Start : 15,12
End : 16,8
Keluaran
N,W,N,E,N,E,S,W,N,W,S,E,S,E,N,E,N
Memasukkan
OOOOOOOOOOOOOOOO
O~~~~~OOOOO~~~~O
O~~O~OOOOOOO~~OO
O...O..........O
O........O.....O
O..............O
OO.............O
O.............OO
O....~....O....O
O..............O
O..............O
OOOOOOOOOOOOOOOO
Start : 2,2
End : 14,3
Keluaran
E,S,S,W,N,E,N
Memasukkan
OOOOOOOOOOOOOOOOOOO
O~~~~~~~OOOOOOOOOOO
O~~~~...OOOOOOOOOOO
OO~O~..OOOOOOOOOOOO
O..OO.............O
O..............O..O
O....O............O
O.O............~..O
O........OOOO.....O
O.......OOOOO.....O
O.......O~~~O.....O
O.......~~~~~.....O
O.......~~~~~.....O
O..........O......O
O..O..~...........O
O...............O.O
O.....O...........O
O.................O
OOOOOOOOOOOOOOOOOOO
Start : 2,2
End : 11,11
Keluaran
E,E,E,E,E,S,S,E,N,W,S,E,N,N,N