Votre objectif est d'écrire un programme qui crée une carte aléatoire 10 x 10 à l'aide de 0
, 1
et 2
, et trouve le chemin le plus court de haut en bas à bas à droite, en supposant que:
0 représente un champ d'herbe: n'importe qui peut marcher dessus;
1 représente un mur: vous ne pouvez pas le traverser;
2 représente un portail: lorsque vous entrez dans un portail, vous pouvez vous déplacer vers n'importe quel autre portail de la carte.
Spécifications:
- L'élément en haut à gauche et celui en bas à droite doivent être 0 ;
- Lors de la création de la carte aléatoire, chaque champ devrait avoir 60% de chances d'être un 0 , 30% d'être un 1 et 10% d'être un 2 ;
- Vous pouvez vous déplacer dans n'importe quel champ adjacent (même en diagonale);
- Votre programme doit afficher la carte et le nombre d'étapes du chemin le plus court;
- S'il n'y a pas de chemin valide menant au champ en bas à droite, votre programme doit sortir la carte uniquement;
- Vous pouvez utiliser n'importe quelle ressource que vous souhaitez;
- Le code le plus court gagne.
Calcul des étapes:
Une étape est un mouvement réel; chaque fois que vous changez de champ, vous incrémentez le compteur.
Production:
0000100200
0100100010
1000000111
0002001000
1111100020
0001111111
0001001000
0020001111
1100110000
0000020100
9