IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Algorithme pour complexification d'un labyrinthe


Sujet :

Python

  1. #1
    Invité
    Invité(e)
    Par défaut Algorithme pour complexification d'un labyrinthe
    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 :
    Nom : sidewinder.jpg
Affichages : 663
Taille : 82,7 Ko
    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 :
    Nom : sidewinder1.jpg
Affichages : 641
Taille : 86,2 Ko
    (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 :
    Nom : sidewinder22.jpg
Affichages : 615
Taille : 87,2 Ko
    (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 :
    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]
    ]
    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...
    Dernière modification par Invité ; 04/12/2021 à 02h45.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 699
    Par défaut
    Salut,

    Pourquoi ne pas poser la question dans le forum ad hoc?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 817
    Billets dans le blog
    1
    Par défaut
    Salut

    wiztricks n'a pas tort. Demander de l'aide pour concevoir un algo n'a pas de rapport avec Python, même si plus tard l'algo est implémenté en Python.

    Mais (chance) quelqu'un a déjà fait le boulot et en Python en plus... http://mathsoup.xyz/mathsoup.xyz/con...%C3%A8ves.html
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci pour vos réponses, je vais tâcher de poster ça au bon endroit !

    @Sve@r Je pense que tu voulais que je vérifie si le labyrinthe reste parfait ?
    Je ne veux pas qu'il soit parfait, à la base il est parfait puisque c'est un sidewinder mais ensuite je veux y mettre des boucles avec mes "raccourcis".

    Je poursuis la conversation ici avec une nouvelle idée : https://www.developpez.net/forums/d2.../#post11789940

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. algorithme pour arbre
    Par d-a-v-e dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 06/02/2006, 21h16
  2. algorithme pour calcul de probabilité
    Par filsdugrand dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 14/12/2005, 14h11
  3. Quel algorithme pour insertion d'objets "triés" da
    Par phplive dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2005, 09h27
  4. Algorithme pour trier trois nombres
    Par legosam dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 17/01/2005, 21h47
  5. Algorithme pour chiffres significatifs en Assembleur
    Par lutin2003 dans le forum Assembleur
    Réponses: 5
    Dernier message: 09/09/2004, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo