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