Este é um acompanhamento da questão Imprimir um labirinto . Se você gostou desta pergunta, adicione mais algoritmos de geração de labirinto;).
Para esta tarefa, você terá que implementar um mecanismo de jogo para um jogador que deve encontrar o tesouro em um labirinto e sair da masmorra.
O mecanismo inicia lendo o labirinto a partir da entrada padrão seguida por uma linha contendo um um arquivo fornecido como argumento na linha de comando. Em seguida, o jogador .
(ponto)@
é colocado em um local aleatório no mapa. Em seguida, o mecanismo começa a interagir com o jogador através do io padrão:
Comandos do mecanismo para o jogador :
continue
: Jogo não concluído. Os arredores são impressos seguidos de a.
. O jogador é representado pelo@
personagem. As células não observáveis são representadas por?
.finished
: Jogo terminado. O número de etapas é impresso e o jogo para.
Comandos do jogador para o mecanismo :
north
: Move o jogador para cima.south
: Move o jogador para baixo.west
: Move o jogador para a esquerda.east
: Mova o jogador para a direita.
Qualquer comando inválido (como bater em uma parede) do jogador é ignorado, mas ainda conta. Você é livre para definir o ambiente ao seu gosto.
- Pontos para o código mais curto.
- Pontos para ambientes complexos (por exemplo, imprima grandes regiões e substitua células que não são visíveis
?
). - Nenhum ponto para o código que não respeita o formato io
Exemplo :
Neste exemplo, o ambiente é definido como a célula 3x3 com o player no meio.
$ cat maze
+-+-+
|#|
| |
+---+
$ python engine.py maze
|#
@
---
.
east
|#|
@|
--+
.
north
+-+
|@|
|
.
south
|#|
@|
--+
.
west
|#
@
---
.
west
|
|@
+--
.
north
+-+
@|
|
.
west
finished
7