Il s'agit d'un suivi de la question Imprimer un labyrinthe . Si vous aimez cette question, veuillez ajouter d'autres algorithmes de génération de labyrinthe;).
Pour cette tâche, vous devrez implémenter un moteur de jeu pour un joueur qui doit trouver le trésor dans un labyrinthe et sortir du donjon.
Le moteur commence par lire le labyrinthe à partir de l'entrée standard, suivi d'une ligne contenant un un fichier donné comme argument dans la ligne de commande. Ensuite, le joueur .
(point)@
est placé dans un endroit aléatoire sur la carte. Ensuite, le moteur commence à interagir avec le joueur via io standard:
Commandes du moteur au joueur :
continue
: Jeu non terminé. L'environnement est imprimé suivi d'un.
. Le joueur est représenté par un@
personnage. Les cellules non observables sont représentées par?
.finished
: Jeu terminé. Le nombre d'étapes est imprimé et le jeu s'arrête.
Commandes du joueur au moteur :
north
: Déplace le joueur vers le haut.south
: Déplace le joueur vers le bas.west
: Déplacer le joueur vers la gauche.east
: Déplacer le joueur vers la droite.
Toute commande invalide (comme frapper un mur) du joueur est ignorée, mais toujours comptée. Vous êtes libre de définir l'environnement à votre guise.
- Points pour le code le plus court.
- Points pour un environnement complexe (par exemple imprimer de grandes régions et remplacer les cellules qui ne sont pas visibles par
?
). - Aucun point pour le code qui ne respecte pas le format io
exemple :
Dans cet exemple, l'environnement est défini comme la cellule 3x3 avec le joueur au milieu.
$ cat maze
+-+-+
|#|
| |
+---+
$ python engine.py maze
|#
@
---
.
east
|#|
@|
--+
.
north
+-+
|@|
|
.
south
|#|
@|
--+
.
west
|#
@
---
.
west
|
|@
+--
.
north
+-+
@|
|
.
west
finished
7