Questo è il seguito di Print a labirinto . Se ti piace questa domanda, aggiungi altri algoritmi di generazione del labirinto;).
Per questo compito dovrai implementare un motore di gioco per un giocatore che deve trovare il tesoro in un labirinto ed uscire dalla prigione.
Il motore si avvia leggendo il labirinto dall'input standard seguito da una riga contenente un un file fornito come argomento nella riga di comando. Successivamente il giocatore .
(punto)@
viene posizionato in una posizione casuale sulla mappa. Quindi il motore inizia a interagire con il lettore tramite io standard:
Comandi dal motore al giocatore :
continue
: Gioco non terminato. I dintorni sono stampati seguiti da a.
. Il giocatore è rappresentato dal@
personaggio. Le celle non osservabili sono rappresentate da?
.finished
: Gioco finito. Viene stampato il numero di passaggi e il gioco si interrompe.
Comandi dal giocatore al motore :
north
: Sposta il giocatore verso l'alto.south
: Sposta il giocatore verso il basso.west
: Sposta il giocatore a sinistra.east
: Sposta il giocatore a destra.
Qualsiasi comando non valido (come colpire un muro) dal giocatore viene ignorato, ma viene comunque conteggiato. Sei libero di definire l'ambiente che preferisci.
- Punti per il codice più breve.
- Punti per ambienti complessi (ad esempio, stampa di aree estese e sostituisci celle non visibili
?
). - Nessun punto per il codice che non rispetta il formato io
Esempio :
In questo esempio l'ambiente circostante è definito come la cella 3x3 con il giocatore al centro.
$ cat maze
+-+-+
|#|
| |
+---+
$ python engine.py maze
|#
@
---
.
east
|#|
@|
--+
.
north
+-+
|@|
|
.
south
|#|
@|
--+
.
west
|#
@
---
.
west
|
|@
+--
.
north
+-+
@|
|
.
west
finished
7