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

Intelligence artificielle Discussion :

PathFinding en ligne droite ( Java )


Sujet :

Intelligence artificielle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut PathFinding en ligne droite ( Java )
    Salut !
    Alors voila, en faite je cherche à développer un système de création aléatoire de niveau.
    J'ai réussis à faire à créer les salles en nombres et tailles aléatoires, les placer, mais je n'arrive pas à les relier.
    Donc mon problème est "simplement" de relier deux points A et B, sans passer à l'intérieur des salles ( Mais les couloirs peuvent se croiser eux. ), et en étant le plus possible "droits".
    Pour faire simple :

    Le point Vert est le point de départ, et le Rouge l'arrivé.
    Moi je voudrais avoir le chemin Noir, et pas le chemin Bleu.

    Voila un autre petit dessin :

    Les deux chemins Verts peuvent donc se croiser, mais ils ne peuvent pas rentrer dans les carrés Noirs.

    Je pense que le mieux serait d'utiliser l'Algorithme AStar, mais impossible de trouver une explication "correcte" en français.

    Si possible, je cherche des explications qui prennent le Java pour base, ça me sera moins compliquer que si c'est expliquer pour un langage.

    Merci d'avance !

    ( Désoler si c'est le mauvais endroit, je savais pas trop où poster ^^" )

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 815
    Points : 218 179
    Points
    218 179
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    Je pense que le A* n'est pas vraiment une bonne idée, car vous souhaitez le limiter (pas de possibilité de faire des escaliers et pas de possibilités de coller les murs de la salle).
    L'idée, c'est de partir sur une idée simple.
    À la première case d'entrée et de sortie, vous devez d'abord vous décaler de un, pour ne pas longer les murs, après, vous devez vous déplacer que sur une seule direction à la fois et autant que possible (tant que cela vous rapproche de la case destination) continuer sur cette direction.

    Enfin, votre algorithme ne doit pas traverser de salle, tout en vous déplaçant avec les contrainte précédentes. Le fait de coder ces trois règles, je pense, donneront déjà un résultat prometteur.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Une simple carte de distance peut aussi faire l'affaire :
    - carte de distance depuis l'origine.
    - parcours inverse à partir de l'arrivée.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Je pense que le A* n'est pas vraiment une bonne idée, car vous souhaitez le limiter (pas de possibilité de faire des escaliers et pas de possibilités de coller les murs de la salle).
    Il est assez simple d'obtenir des chemins "orthogonaux" avec A* si on utilise une distance de Manhattan.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Finalement, j'ai très légérement modifier le code de la génération des salles, en rajoutant un mur "fictif" autour de mes salles.
    ( J'entends par cela que ce murs ne peut pas être traverser par le chemin comme un mur normal. )
    Par contre, j'aimerais ( Si possible ) éviter que deux chemins ne se longent, je prefèrerais qu'ils se superpose.

    Ça donnerais ça :



    Avec en noir les murs "traversable" par le chemin, en rouge les murs non traversables, en vert le chemin que je souhaiterais avoir, et en bleu celui que j'aimerais éviter.

    Donc j'avais effectivement vu qu'avec un AStar et une distance de Manathan c'était possible, il faut que je regarde dans cette direction.

    Par contre, c'est quoi une carte de distance ?

Discussions similaires

  1. tracer une ligne droite
    Par solitair dans le forum Images
    Réponses: 6
    Dernier message: 18/05/2008, 17h13
  2. Comment générer une ligne droite
    Par cliquet dans le forum Général Java
    Réponses: 3
    Dernier message: 20/01/2008, 23h54
  3. Les droits Java ?
    Par Albat90 dans le forum Langage
    Réponses: 3
    Dernier message: 13/03/2007, 14h47
  4. traçage d'une ligne en java
    Par guimen dans le forum Graphisme
    Réponses: 1
    Dernier message: 15/05/2006, 22h38
  5. Tracer une ligne droite sans les interruptions
    Par Stef784ever dans le forum x86 16-bits
    Réponses: 4
    Dernier message: 25/11/2002, 02h22

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