Tantangan
Tugas Anda adalah untuk menghidupkan Adve the Adventurer yang bergerak melalui labirin menyeramkan (yaitu Halloween). Adve adalah •
; dia adalah karakter yang berubah-ubah, jadi dia tidak keberatan diwakili oleh karakter yang berbeda.
Untuk menghidupkan Adve, Anda mencetak setiap bingkai; bingkai adalah peta dengan lokasi saat ini di dalamnya. Adve bergerak satu ruang maju setiap belokan dan tidak pernah mundur. Dia mulai di baris pertama dan berakhir di yang terakhir.
Memasukkan
Format beralasan seperti string dengan pembatas atau string array. Anda dapat berasumsi bahwa input akan berupa peta yang lebih besar dari 3 * 3, hanya berisi satu jalur yang memungkinkan. Satu-satunya karakter yang ada adalah #
dan .
Keluaran
Frame.
Contoh labirin ( ok ... labirin )
Ini adalah peta tanpa Adve di dalamnya; frame pertama dan terakhir adalah peta kosong ini (peta ini berukuran 9x15):
### #####
## #####
## ######
## #
####### #
# ### #
# # # #
# # ###
# #######
# ####
#### ####
#### ###
##### ###
##### ###
##### ###
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
The tepat output untuk ini dapat ditemukan di sini (37 frame).
Jawaban:
Perl, 84 byte
Terima kasih @Ton Hospel untuk membimbing saya ke arah yang benar untuk bermain golf sekitar 30 byte!
Bytecount mencakup 82 byte kode dan
-0p
bendera.Perhatikan bahwa ada dua ruang terakhir, dan tidak ada baris baru final (tidak akan berfungsi sebaliknya).
Mengambil labirin sebagai input sebagai output semua frame yang dibutuhkan Adve untuk keluar darinya. Perhatikan bahwa Adve
&
lebih daripada a•
, karena yang terakhir tidak utf8 (dan perl tidak menggunakan utf8 secara default). Jalankan dengan-0pE
bendera:Hanya untuk mata , saya juga membuat versi animasi ini, yang sedikit lebih lama, tetapi akan menghapus terminal antara setiap cetakan dan tidur 0,15 detik, sehingga akan terlihat seperti Adve benar-benar bergerak:
sumber
$s="@+"
, saya tidak menyadari sebelumnya bahwa@+
hanya berubah jika regex yang berhasil terjadi. Danredo
bukannyawhile
menyimpan satu atau dua byte). Adakah petunjuk tentang cara bermain golf lebih banyak? Kurasa aku harus menyingkirkannyay///
entah bagaimana, ataus///
memperpendeknya ... tapi bagaimanapun aku tidak tahu caranya.y///
bagus karena Anda perlu sesuatu untuk menunjukkan arah (tetapi perhatikan Anda harus memilih di sisi mana) Tapi peningkatan utama akan datang dari menggabungkan substitusis/ &/&A/
dans/& /A&/
bersama - sama (dan selanjutnya bersama-sama) untuk melihat bahwa itu bukan regex yang saya butuhkan untuk digabungkan! Terima kasih banyak! (Dan terima kasih telah memberi tahu saya cara bermain golf!)JavaScript (ES6), 137
(1 byte disimpan thx @ETHproductions)
Kurang golf
Uji
sumber