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

avec Java Discussion :

un objet "arbre" existe-t-il ?


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Par défaut un objet "arbre" existe-t-il ?
    Bonjour,

    Je m'interresse depuis peu aux Inteligences Artificielles. Pour réaliser un projet de jeu avec une IA j'ai besoin d'un arbre de jeu : c'est à dire un objet père donne naissance a 0 ou plusieurs objets fils qui a leurs tours donneront naissance a 0 ou plusieurs objets fils, etc... c'est une sorte d'arborescence hiérarchique. Exemple :

    .....................A
    ................../..|..\
    ................/....|....\
    ...............B....C.....D
    ............./...\
    ............E.....F
    .........../..\
    .........G....H

    Existe-t-il une librairie qui fait cela ou vais-je devoir développer cela ?
    Merci de vos réponses.

    Bon développement

  2. #2
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    javadoc --> package java.util --> TreeMap, TreeSet

  3. #3
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    Citation Envoyé par iohack
    javadoc --> package java.util --> TreeMap, TreeSet
    Pas sûr que ces classes aient quelque chose à voir avec la notion d'arbre qui est demandée, si ?

    Le plus simple c'est de créer soi-même les classes, faites en même pas 3 min :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Arbre {
     
       private NoeudArbre racine ;
     
       public Arbre( NoeudArbre racine ) {
          this.racine = racine ;
       }
     
       public NoeudArbre getRacine() {
          return racine ;
       }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public class NoeudArbre {
       private ArrayList<NoeudArbre> childs ;
     
       public NoeudArbre() {
          childs = new ArrayList() ;
       }
     
       public void addChild( NoeudArbre noeud ) {
          this.childs.add( noeud ) ;
       }
     
       public NoeudArbre getChild( int index ) {
          return childs.get( index ) ;
       }
    }
    A compléter bien sûr suivant tes besoins : suppression de noeud, équilibrage, etc... Mais la base est là.

    ++

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 77
    Par défaut
    J'ajouterais pour compléter schniouf qu'il peut être intéressant d'avoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public class Arbre extends NoeudArbre {
    C'est cohérant conceptuellement, la racine d'un arbre est un noeud qui ne possède pas de père. De plus, cela évite de dupliquer les propriétés communes des noeuds fils et de la racine.

  5. #5
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    C'est une bonne idée, mais la raison pour laquelle je n'ai pas fait étendre Arbre avec NoeudArbre est que si on procède à ta manière, alors, la racine restera toujours la même. Ca sera la galère pour effectuer une rotation, par exemple !
    Alors que si tu laisse une variable racine dans Arbre (sans étendre), tu pourras modifier cette racine est appliquer des algorithmes sur l'arbre.
    J'espère que tu as compris ce que je voulais dire
    ++

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Moi j'aurai dit plutot javadoc --> package javax.swing.tree --> TreeNode, MutableTreeNode, DefaultMutableTreeNode

    Des classes finallement sans grand rapport de dependance direct avec le JTree et le TreeModel et qui auraient merite d'etres placees dans java.util. Et sinon ce n'est pas non-plus super-complique a faire ca soit-meme.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

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