Raja Julian perlu melewati hutan, tetapi dia merasa malas. Dia ingin komputer dapat menghitung rute melalui hutan untuknya.
Menggunakan STDIN, dapatkan peta hutan untuk diretas oleh komputer. Ini akan mengikuti format berikut:
01001E
010110
000P00
1100J1
S00111
Cara peta hutan bekerja adalah:
0
adalah dasar yang bisa diikuti oleh Julian.
1
adalah hutan lebat yang tidak bisa dilewati.
P
adalah area dengan predator di dalamnya, yang harus Anda hindari dengan cara apa pun.
J
adalah hutan yang relatif tebal. Antek-antek Julian dapat menerobos salah satu dari ini sebelum melelahkan.
S
Di sinilah Julian memulai. Itu bisa di mana saja di peta.
E
adalah tempat Julian ingin pergi; ujung jalan. Itu juga bisa di mana saja di peta, sama seperti ubin lainnya.
Setiap karakter adalah ubin di peta. Jeda baris menunjukkan baris ubin baru. Jika STDIN dalam bahasa Anda tidak mendukung jeda baris, jeda baris harus diganti dengan spasi untuk menandakan baris baru.
Untuk berpindah di antara ubin, Anda harus mengeluarkan string menggunakan STDOUT yang berisi karakter khusus berikut:
F
- Maju
B
- Mundur
L
- Putar Julian ke kiri (90 derajat berlawanan arah jarum jam)
R
- Putar Julian ke kanan (90 derajat searah jarum jam)
M
- Minion menghancurkan J
ubin 1 ubin ke depan dari Julian, jika ada satu (M
hanya membersihkan ubin, Anda masih harus pindah ke sana)
Output yang mungkin adalah:
RFFLFRFMFLFRFLFF
Yang memecahkan peta di atas.
Catatan:
Jika program Anda menghasilkan solusi yang mengenai predator, goyangkan.
Jika Anda menabrak hutan yang tidak dapat dilewati, Anda hanya bangkit kembali ke tempat Anda berada sebelum Anda berlari ke hutan lebat, menghadap ke arah yang sama. (Menuju hutan)
Julian mulai menghadap ke atas. (^ Lewat sana ^)
Output tidak harus menjadi solusi tercepat,
FFF
danFBFBFBFBFBFFF
sama. Namun, menghasilkan solusi tercepat mungkin memberikan bonus hitungan byte -10%.Jika peta tidak valid, STDOUT 'Peta tidak valid.' (Itu termasuk jika peta tidak dapat dipecahkan)
Peta tidak dapat memiliki baris atau kolom dengan panjang yang berbeda; yang membuatnya tidak valid.
Jawaban Anda agaknya harus mengikuti format ini:
#Language name, *n* bytes
code
Explanation (optional)
Ini adalah kode-golf , jadi kode terpendek dalam byte menang.
P
ubin benar-benar menambahkan sesuatu yang berbeda dari1
ubin? Saya tidak bisa membayangkan solusi masuk akal yang memperlakukan mereka secara berbeda.Jawaban:
Groovy, 656 byte
Itu terlalu lama ...
Output untuk labirin:
Tidak Terkumpul:
Saya akan mencoba ini lagi dengan python segera untuk melihat apakah saya dapat mempersingkat lebih lanjut.
sumber