Bonjour,
Désolé l'introduction est un peu lourde...
J'utilise un algorithme Sidewinder pour réaliser un labyrinthe qui ressemble à ça mais en beaucoup plus grand :
Ce genre de labyrinthe est assez prédictif car il n'y a jamais de chemin remontant, du coup j'ai entrepris la tâche de le complexifier à moitié manuellement à moitié à l'aide d'un algorithme de résolution de labyrinthe en créant des détours. Je précise qu'il n'y a qu'un seul chemin possible !
Un exemple :
(En vert clair les rajouts, en "fondu" les portions supprimées)
Seulement voila si un joueur tombe sur un chemin remontant alors il sait dores et déjà qu'il est sur la bonne piste, je voudrais donc rajouter des "pseudos-raccourcis" entre les "mauvais-chemins", ce qui donnera l'impression d'avoir des chemins qui remontent de temps en temps, mais (et c'est là où ça devient costaud) je ne veux pas créer de "vrai-raccourcis" au "bon-chemin" !
Exemple :
(En rouge ce que je ne veux pas, en bleu ce que je veux bien.)
L'idéal serait de calculer la longueur du "bon-chemin" à chaque ajout de pseudo-raccourcis, histoire de ne pas rajouter de "vrai-raccourcis", mais il faut 20 minutes pour que le script de résolution de labyrinthe établisse le bon chemin, je crains donc que de calculer cette longueur à chaque rajout va être infiniment long !
Si vous avez des idées, je suis preneur !
Le fichier du labyrinthe est une liste de liste de 0 pour les murs et 1 pour les chemins et de 9 pour le bon chemin !
Exemple :
Je pensais faire une sorte de "cropping" de mon aire pour m'assurer que dans un carré de 50 index de côté il n'y a pas de 9 qui traine par exemple, c'est loin d'être parfait et carrément biaisé mais bon...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 [ [0,0,0,0,0,0], [0,9,9,9,9,0], [0,0,1,0,9,0], [0,1,1,0,9,0], [0,0,0,0,0,0] ]
Partager