Hidup Anda bisa bergantung pada ini. Jangan berkedip. Jangan berkedip. Berkedip dan Anda mati. Mereka cepat. Lebih cepat dari yang Anda bisa percaya. Jangan berbalik, jangan memalingkan muka, dan jangan berkedip! Semoga berhasil.
Menangis Malaikat adalah ras alien yang tidak bisa bergerak sambil diamati oleh makhluk lain (bahkan Malaikat lain). Mereka memberi makan dengan mengirim para korban mereka kembali ke masa lalu. Anda ( Dokter ) terperangkap di sebuah ruangan bersama beberapa orang, dan Anda perlu mendatangi TARDIS Anda.
Tugas
Tulis sebuah program yang akan, diberi representasi ASCII dari ruang persegi panjang, menghasilkan jalur yang akan membawa Anda ke tempat yang aman. Jika ada Malaikat yang dapat menyerang - kapan saja selama kemajuan Anda - maka jalan itu tidak aman. Malaikat dapat menyerang jika ia dapat melihat Anda sementara tidak terlihat oleh Anda atau Malaikat lain.
Memasukkan
Input adalah dua bagian. Pertama, arah yang Anda hadapi (NSEW). Kemudian pada baris berikutnya, representasi ruangan, menunjukkan lokasi awal / akhir, dan lokasi / menghadap semua Malaikat.
Sampel di bawah ini menunjukkan bahwa ada satu malaikat menghadap ke barat, dan Anda mulai menghadap ke selatan.
S
..........
....D.....
..........
..........
..........
..........
..........
..........
.........W
..........
...T......
.
- Ruang kosongD
- Dokter (posisi awal)T
- TARDIS (posisi akhir)N,S,E,W
- Seorang Malaikat, menghadap ke arah yang ditentukan (utara, selatan, timur, barat)
Pandangan
Anda dapat melihat ruang apa pun dengan 45 derajat arah yang Anda hadapi. Garis pandang terhalang jika ada entitas lain di sepanjang horisontal, vertikal, atau diagonal 45 derajat langsung. Diagonal lainnya tidak menghalangi pandangan. Garis pandang malaikat bekerja dengan cara yang sama. Misalnya, berikut ini, -
mewakili bidang pandang Anda, dengan asumsi Anda menghadap ke selatan.
........
...D....
..---...
.-----..
-------.
---N----
---.--N-
---.----
Keluaran
Outputnya adalah string yang mewakili jalur yang akan Anda ambil untuk keluar. Jika ada beberapa jalur aman, pilih salah satunya. Jika tidak ada jalur yang aman, hasilkan 0
. Jika peta salah bentuk, lakukan apa pun yang Anda suka, termasuk mogok. Anggap itu cacat jika ruangan itu tidak persegi panjang, tidak ada jalan keluar, dll. Jika tidak ada Malaikat, itu tidak cacat, cukup mudah.
Untuk setiap langkah, Anda dapat melakukan salah satu dari dua hal: bergerak ke arah NSEW, atau beralih ke arah NSEW (tanpa mengubah posisi). Untuk bergerak, cukup keluarkan huruf untuk arah itu. Untuk berbalik menghadap arah, output F
diikuti oleh huruf yang sesuai. Misalnya, output berikut:
SSFESSSSSSSW
adalah jalur aman untuk sampel yang diberikan di bagian input. Anda bergerak ke selatan dua kali, menghadap ke timur untuk menjaga agar malaikat itu tidak terlihat, lalu bergerak ke selatan tujuh kali dan ke barat sekali untuk memasuki TARDIS.
Uji Kasus
1) Kamu bisa berkeliling Malaikat yang menghadap ke timur untuk sampai ke TARDIS. Kecuali Anda melangkah langsung di antara mereka, mereka mengunci satu sama lain di tempat, jadi tidak masalah ke arah mana Anda menghadap pada titik mana pun.
W
...D....
........
........
........
.E.....W
........
........
...T....
2) Anda kalah. Tidak ada cara untuk melewati mereka. Mereka dapat saling bertemu sampai Anda melangkah di antara mereka. Pada saat itu, Anda tidak dapat menghadapi mereka berdua dan selesai. Lebih baik tutup saja matamu dan selesaikan.
S
...D....
........
........
........
E......W
........
........
...T....
Kemenangan
Aturan dan celah golf standar berlaku, paling tidak byte menang. Saya akan mencoba untuk mendapatkan beberapa lagi test case segera, tetapi jangan ragu untuk menyarankan Anda sendiri untuk sementara waktu.
Gambar dan kutipan dari Doctor Who.
J
).