Este es un seguimiento de Imprimir una pregunta de laberinto . Si te gusta esta pregunta, agrega más algoritmos de generación de laberintos;).
Para esta tarea, tendrás que implementar un motor de juego para un jugador que debe encontrar el tesoro en un laberinto y salir de la mazmorra.
El motor comienza leyendo el laberinto de la entrada estándar seguido de una línea que contiene un un archivo dado como argumento en la línea de comando. A continuación, el jugador .
(punto)@
se coloca en una ubicación aleatoria en el mapa. Entonces el motor comienza a interactuar con el jugador a través de io estándar:
Comandos del motor al jugador :
continue
: Juego no terminado. Los alrededores están impresos seguidos de a.
. El jugador está representado por el@
personaje. Las celdas no observables están representadas por?
.finished
: Juego terminado. Se imprime el número de pasos y el juego se detiene.
Comandos del jugador al motor :
north
: Mueve al jugador hacia arriba.south
: Mueve al jugador hacia abajo.west
: Mueve el jugador a la izquierda.east
: Mueve el jugador a la derecha.
Cualquier comando no válido (como golpear una pared) del jugador se ignora, pero aún se cuenta. Eres libre de definir los alrededores a tu gusto.
- Puntos por el código más corto.
- Puntos para entornos complejos (por ejemplo, imprima regiones grandes y reemplace las celdas que no son visibles
?
). - No hay puntos para el código que no respeta el formato io
Ejemplo :
En este ejemplo, el entorno se define como la celda 3x3 con el jugador en el medio.
$ cat maze
+-+-+
|#|
| |
+---+
$ python engine.py maze
|#
@
---
.
east
|#|
@|
--+
.
north
+-+
|@|
|
.
south
|#|
@|
--+
.
west
|#
@
---
.
west
|
|@
+--
.
north
+-+
@|
|
.
west
finished
7