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