Seu objetivo é escrever um programa que cria um 10x10 mapa aleatório usando 0
, 1
e 2
, e encontra o caminho mais curto de canto superior esquerdo para canto inferior direito, assumindo que:
0 representa um campo de grama: qualquer um pode andar sobre ele;
1 representa um muro: você não pode atravessá-lo;
2 representa um portal: ao entrar em um portal, você pode mover para qualquer outro portal no mapa.
Especificações:
- O elemento superior esquerdo e o inferior direito devem ser 0 ;
- Ao criar o mapa aleatório, todo campo deve ter 60% de chance de ser 0 , 30% de ser 1 e 10% de ser 2 ;
- Você pode mover-se em qualquer campo adjacente (mesmo na diagonal);
- Seu programa deve gerar o mapa e o número de etapas do caminho mais curto;
- Se não houver um caminho válido que leve ao campo inferior direito, seu programa deve gerar apenas o mapa;
- Você pode usar qualquer recurso que desejar;
- O menor código vence.
Cálculo de etapas:
Uma etapa é um movimento real; toda vez que você altera o campo, você incrementa o contador.
Resultado:
0000100200
0100100010
1000000111
0002001000
1111100020
0001111111
0001001000
0020001111
1100110000
0000020100
9