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 :

Matrice : voir si des éléments ont des contacts


Sujet :

avec Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Matrice : voir si des éléments ont des contacts
    Bonjour à tous

    J'ai une matrice qui représente le modèle d'un jeu, par exemple :
    Citation

    1 0 0 -1
    -1 1 1 0
    0 0 1 -1
    -1 1 0 0


    Le 1 correspond aux pions du joueur 1 et le -1 correspond aux pions du joueur 2

    J'aimerais regarder si par exemple les pions du joueur 1 ont tous un contact (voisin) entre-eux (que ce soit de manière verticale, horizontale, diagonale).


    Auriez-vous une idée de comment faire ?

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Doctorant en informatique théorique
    Inscrit en
    Décembre 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Doctorant en informatique théorique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 28
    Points : 32
    Points
    32
    Par défaut
    Salut...

    Une facon (très) naïve de le faire :

    Tu représentes ton plateau par un tableau à 2 dimensions. Tu parcours chaque case de ton tableau. Si la case courante contient un 1, tu dois vérifier si au moins une des cases voisines contient un 1. Tu vas donc regarder les valeurs des cases voisines en faisant gaffe de ne pas sortir du plateau (vérification sur les indices pour ne pas sortir du domaine [0, taillle[).

    Tu peux imaginer beaucoup d'améliorations de cet algo, comme par exemple retenir le fait qu'un pion P1 du joueur 1 soit voisin d'un autre de ses pions P2. Si c'est le cas, plus besoin de vérifier après pour P2... vu que tu sais qu'il a au moins un voisin (P1).

  3. #3
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Autre soluce (peut être poussant un peu plus la notion objet), tu créé toujours ton tableau à deux dimensions. Et pour chaque élément de ta matrice contenant un 1, tu créé un objet PionAmi() et pour chaque -1, tu créé un objet PionEnnemi(). Toutes les autres cases sont donc vides.

    A chaque mouvement du Pion, tu appelles une routine de vérification de ses voisins genre :
    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
    16
    17
    18
    19
    20
    /**
     * Le pion se déplace d'une case à droite
     */
    goToRight() {
      checkVoisin()
     
      // TODO : routine pour se déplacer à droite dans le tableau
    }
     
    /**
     * Appeler à chaque déplacement du Pion, elle vérifie les cases voisines
     */
    checkVoisin() {
       if (tableauCoordonnee[this.getX() +1] == null) { // tableauCoordonnee représente ta matrice d'objets
        // ta case à droite n'est pas occupée
      } else {
        // tu as un Pion à ta droite
      }
      // TODO : Reste à implémenter et à perfectionner
    }
    Enfin je vois pas où est le problème au final ?
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

Discussions similaires

  1. Réponses: 12
    Dernier message: 09/04/2015, 15h53
  2. [OL-2007] Mettre à jour des éléments dans un contact
    Par gambi dans le forum Outlook
    Réponses: 0
    Dernier message: 12/01/2013, 13h14
  3. Relier des données sur des éléments d'une form
    Par Takumi dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/01/2010, 16h06
  4. [XSD] comment faire des tests sur des éléments
    Par attila771 dans le forum Valider
    Réponses: 1
    Dernier message: 11/10/2007, 12h32

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