Ini adalah tindak lanjut dari Mencetak pertanyaan labirin . Jika Anda menyukai pertanyaan ini, silakan tambahkan lebih banyak algoritma pembuatan labirin;).
Untuk tugas ini Anda harus menerapkan mesin permainan untuk satu pemain yang harus menemukan harta karun di labirin dan keluar dari penjara bawah tanah.
Mesin mulai dengan membaca labirin dari input standar diikuti oleh baris yang berisi file yang diberikan sebagai argumen di baris perintah. Selanjutnya pemain .
(titik)@
ditempatkan di lokasi acak di peta. Kemudian engine mulai berinteraksi dengan pemain melalui standar io:
Perintah dari mesin ke pemain :
continue
: Game belum selesai. Lingkungan dicetak diikuti oleh a.
. Pemain diwakili oleh@
karakter. Sel yang tidak dapat diobservasi diwakili oleh?
.finished
: Game selesai. Jumlah langkah dicetak dan permainan berhenti.
Perintah dari pemain ke mesin :
north
: Memindahkan pemain ke atas.south
: Memindahkan pemain ke bawah.west
: Pindahkan pemain ke kiri.east
: Pindahkan pemain ke kanan.
Perintah yang tidak valid (seperti menabrak dinding) dari pemain diabaikan, tetapi masih dihitung. Anda bebas menentukan lingkungan yang Anda sukai.
- Poin untuk kode terpendek.
- Poin untuk lingkungan yang kompleks (mis. Cetak wilayah besar dan ganti sel yang tidak terlihat oleh
?
). - Tidak ada poin untuk kode yang tidak menghormati format io
Contoh :
Dalam contoh ini, lingkungan didefinisikan sebagai sel 3x3 dengan pemain di tengah.
$ cat maze
+-+-+
|#|
| |
+---+
$ python engine.py maze
|#
@
---
.
east
|#|
@|
--+
.
north
+-+
|@|
|
.
south
|#|
@|
--+
.
west
|#
@
---
.
west
|
|@
+--
.
north
+-+
@|
|
.
west
finished
7