Bu, Labirent sorusunu yazdırın bir devamıdır . Bu soruyu beğendiyseniz, lütfen daha fazla labirent oluşturma algoritması ekleyin;).
Bu görev için, bir labirentte hazineyi bulması ve zindandan çıkması gereken bir oyuncu için bir oyun motoru uygulamanız gerekir.
Motor, labirenti standart girişten okuyarak başlar ve .
ardından komut satırında bağımsız değişken olarak verilen bir dosyayı (nokta) içerir . Daha sonra oyuncu @
harita üzerinde rastgele bir konuma yerleştirilir. Ardından motor, oynatıcıyla standart io aracılığıyla etkileşime başlar:
Motordan oyuncuya komutlar :
continue
: Oyun bitmedi. Çevre, ardından a.
. Oyuncu@
karakter ile temsil edilir . Gözlenemeyen hücreler ile temsil edilir?
.finished
: Oyun bitti. Adım sayısı yazdırılır ve oyun durur.
Oyuncudan motora komutlar :
north
: Oynatıcıyı yukarı taşır.south
: Oynatıcıyı aşağı taşır.west
: Oynatıcıyı sola hareket ettirin.east
: Oynatıcıyı sağa hareket ettirin.
Oynatıcıdaki geçersiz komutlar (duvara vurmak gibi) yok sayılır, ancak yine de sayılır. Çevreyi beğeninize göre tanımlamakta serbestsiniz.
- En kısa kod için puan .
- Karmaşık ortamlar için noktalar (örneğin, geniş bölgeleri yazdırın ve görünmeyen hücreleri değiştirin
?
). - İo biçimine uymayan kod için nokta yok
Örnek :
Bu örnekte ortam, oynatıcı ortada olacak şekilde 3x3 hücre olarak tanımlanmıştır.
$ cat maze
+-+-+
|#|
| |
+---+
$ python engine.py maze
|#
@
---
.
east
|#|
@|
--+
.
north
+-+
|@|
|
.
south
|#|
@|
--+
.
west
|#
@
---
.
west
|
|@
+--
.
north
+-+
@|
|
.
west
finished
7