Labirin menurun diberikan sebagai serangkaian baris spasi yang dipisahkan digit dari 0 hingga 9 inklusif, ditambah satu "S" dan satu "X", di mana S menunjukkan awal dan X menunjukkan finish. Di labirin menurun, Anda hanya dapat pergi ke ruang yang berdekatan dengan Anda di utara, selatan, timur, atau barat (tanpa diagonal), dan Anda hanya dapat pergi ke ruang dengan nilai kurang dari atau sama dengan nilai yang Anda sedang aktif.
Program harus mengeluarkan jalur untuk bernavigasi melalui labirin dalam format yang sama dengan input, hanya semua ruang yang dilintasi harus memiliki "." di dalamnya, dan semua ruang yang belum dikunjungi harus memiliki "#" di dalamnya. Sel awal dan akhir juga harus menyimpan "S" dan "X" masing-masing. Anda dapat mengasumsikan selalu ada solusi untuk labirin.
Input contoh:
3 3 3 3 2 1 S 8 9
3 1 1 3 3 0 6 8 7
1 2 2 4 3 2 5 9 7
1 2 1 5 4 3 4 4 6
1 1 X 6 4 4 5 5 5
Contoh output:
. . . . # # S . #
. # # . . # # . .
. # # # . # # # .
. # # # . # # # .
. . X # . . . . .
sumber
S
danX
ke segala arah? Apakah labirin selalu terpecahkan?0
ke9
inklusif, kan?Jawaban:
JavaScript (ES6) 219
Suatu fungsi yang mengembalikan benar atau salah. Solusinya (jika ditemukan) adalah output pada konsol. Itu tidak mencoba untuk menemukan solusi optimal.
Tidak diserang sampai mati dan menjelaskan lebih dari yang dibutuhkan
Uji di Firefox / konsol FireBug
Keluaran
sumber
C # - 463
Menerima input melalui STDIN, dan harus menghasilkan jalur yang optimal, diuji untuk kasus uji yang diberikan, tetapi tidak sebaliknya. Anggap selalu ada solusi.
Saya agak terburu-buru, saya punya tenggat waktu dalam 7 jam, tapi ini sepertinya terlalu menyenangkan untuk dilewatkan. Saya juga tidak berlatih. Ini bisa sangat memalukan jika ini salah, tapi cukup layak golf.
Kode dengan komentar:
sumber