Dies ist eine Fortsetzung der Frage " Labyrinth drucken". Wenn Ihnen diese Frage gefällt, fügen Sie bitte weitere Algorithmen zur Labyrinthgenerierung hinzu;).
Für diese Aufgabe müssen Sie eine Spiel-Engine für einen Spieler implementieren, der den Schatz in einem Labyrinth finden und den Dungeon verlassen muss.
Die Engine beginnt mit dem Lesen des Labyrinths aus der Standardeingabe, gefolgt von einer Zeile mit einem einer Datei, die als Argument in der Befehlszeile angegeben ist. Als nächstes wird der Spieler .
(Punkt)@
an einer zufälligen Stelle auf der Karte platziert. Dann beginnt die Engine mit dem Player über Standard io zu interagieren:
Befehle von der Engine zum Spieler :
continue
: Spiel nicht beendet. Die Umgebung wird gedruckt, gefolgt von a.
. Der Spieler wird durch den@
Charakter dargestellt. Nicht beobachtbare Zellen werden durch dargestellt?
.finished
: Spiel beendet. Die Anzahl der Schritte wird gedruckt und das Spiel stoppt.
Befehle vom Spieler zur Engine :
north
: Bewegt den Spieler nach oben.south
: Bewegt den Spieler nach unten.west
: Spieler nach links bewegen.east
: Spieler nach rechts bewegen.
Jeder ungültige Befehl (z. B. das Schlagen einer Wand) vom Spieler wird ignoriert, aber dennoch gezählt. Sie können die Umgebung nach Ihren Wünschen definieren.
- Punkte für den kürzesten Code.
- Punkte für komplexe Umgebungen (z. B. große Bereiche drucken und Zellen ersetzen, die nicht sichtbar sind
?
). - Keine Punkte für Code, der das Io-Format nicht berücksichtigt
Beispiel :
In diesem Beispiel wird die Umgebung als 3x3-Zelle mit dem Player in der Mitte definiert.
$ cat maze
+-+-+
|#|
| |
+---+
$ python engine.py maze
|#
@
---
.
east
|#|
@|
--+
.
north
+-+
|@|
|
.
south
|#|
@|
--+
.
west
|#
@
---
.
west
|
|@
+--
.
north
+-+
@|
|
.
west
finished
7