Partage
  • Partager sur Facebook
  • Partager sur Twitter

Représenter un jeu de cartes sous forme de tableaux

Sujet résolu
    16 juin 2011 à 13:33:34

    Bonjour,
    Je voudrais représenter un jeu de cartes dans une classe.
    Le constructeur devra instancier un jeu de 52 cartes, et il y aura des méthodes qui se chargent de traiter les cartes: affiche(), tirer(), melanger(), ...
    Pour ce qui est de la série de cartes, je pensais faire une ArrayList() tout simplement, parce que je peut la parcourir et éliminer la carte une fois qu'elle est tirer du paquet.
    Pour chaque carte, je pensais faire une serie de 52 tableaux comportant 2 entiers: le premier pour la valeur, le 2 eme pour la couleur.
    le problème est que je n'arrive pas a afficher correctement les cartes et donc a recuperer les index.
    j'ai un premier exemple qui est fait avec un tableau fonctionne 2 dimentions fonctionne bien, mais il me faut une ArrayList() pour pouvoir effacer les cartes du paquet.
    le 2 ème essais m'affiche des trucs bizarre:
    mport java.util.ArrayList;
    
    /**
     * Classe instanciant un jeu de 52 cartes
     * @author Dario
     */
    public class JeuDeCartes {
        
        /**
         * Attributs
         */
        private String [] valeurs = {"2", "3", "4", "5", "6", "7",
                                    "8", "9", "10", "Valet", "Dame", "Roi", "As"};
        private String [] couleurs = {"Pique", "Coeur", "Carreau", "Trefle"};
        private int [][] jeu = new int [52][2];
        private ArrayList jeu2 = new ArrayList(); // pour le test de liste dynamique
        
        /**
         * Constructeur
         */
        public JeuDeCartes(){
            int n=0;
            for(int i=0; i<couleurs.length; i++){
                for(int j=0; j<valeurs.length; j++){
                    jeu[n][0] = j;
                    jeu[n][1] = i;
                    n++;
                }
            }
            // Pour le jeu2
            for(int i=0; i<couleurs.length; i++){
                for(int j=0; j<valeurs.length; j++){
                    int [] carte = new int [2];
                    carte[0] = j; carte[1] = i;
                    System.out.println(j+" de "+i); // test
                    jeu2.add(carte);
                }
            }
            System.out.println(jeu2);
    


    résultat:
    [[I@5d888759, [I@2e6e1408, [I@3ce53108, [I@6af62373, [I@459189e1, [I@55f33675, [I@527c6768, [I@65690726, [I@525483cd, [I@2a9931f5, [I@2f9ee1ac, [I@67f1fba0, [I@3fbefab0, [I@133c5982, [I@5f186fab, [I@3d4b7453, [I@24c21495, [I@41d5550d, [I@1cc2ea3f, [I@40a0dcd9, [I@1034bb5, [I@7f5f5897, [I@4cb162d5, [I@11cfb549, [I@5b86d4c1, [I@70f9f9d8, [I@2b820dda, [I@675b7986, [I@2687816d, [I@a422ede, [I@7f12f614, [I@35d9dc39, [I@72093dcd, [I@3cb89838, [I@7b11a3ac, [I@4310b053, [I@7ca83b8a, [I@8dd20f6, [I@6d9efb05, [I@60723d7c, [I@6c22c95b, [I@5fd1acd3, [I@3ea981ca, [I@6a8814e9, [I@c1503a3, [I@37a1c887, [I@5e743399, [I@1ee7b241, [I@7d67d940, [I@2ce83912, [I@41fae3c6, [I@3e7ffe01]
    4 de Coeur

    alors que mon premier essai affiche bien:
    0 de 0
    1 de 0
    2 de 0
    3 de 0
    4 de 0
    5 de 0
    6 de 0
    7 de 0
    8 de 0
    9 de 0
    10 de 0
    11 de 0
    12 de 0
    0 de 1
    1 de 1
    2 de 1
    ...

    Quel est le problème svp ?
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      16 juin 2011 à 13:38:21

      Je n'ai pas encore regardé du côté du code pour situer le problème, mais par contre, que penses-tu d'utiliser une structure comme de ce format la -->
      Map<String, List<Integer>> cards;
      


      Adieu les tableaux, bienvenue aux map et list..

      Je check quand même ton code et j'edit dans un moment ;)
      • Partager sur Facebook
      • Partager sur Twitter
        16 juin 2011 à 13:47:55

        J'ai du mal à comprendre ta logique pour représenter un jeu de cartes o_O . Il suffit de faire une classe Carte qui contient 2 attributs : valeur et couleur. Ensuite, tu crées ton paquet avec une fonction qui remplie une ArrayList<Carte> et là tu pourras les manipuler sans problèmes.
        • Partager sur Facebook
        • Partager sur Twitter
          16 juin 2011 à 13:57:04

          Je plussoie fortement Voldim.

          Mieux qu'une List<Carte> : un Set<Carte>, parce que normalement l'ordre d'une main n'a pas d'importance.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            16 juin 2011 à 13:59:03

            Effectivement, ca serait mieux.
            Je voulais juste rester dans son idée de "couleur => carte 1, carte 2, ..."
            • Partager sur Facebook
            • Partager sur Twitter
              16 juin 2011 à 21:42:21

              Merci de vos réponses,
              Je ne connais pas encore les map et list pour le moment, mais je vais y jetter un oeil.
              J'ai représenter une classe JeuDeCartes parce que c'est l'énoncé d'un exo python que j'ai voulu faire en Java tout simplement, mais c'est vrai que c'est plus logique de faire une classe Carte et de manipuler une serie de cartes avec une ArayList après d'autant plus que c'est plus facilement adaptable a une interface graphique après !
              merci de votre aide !
              • Partager sur Facebook
              • Partager sur Twitter
                16 juin 2011 à 22:39:10

                Si c'est bon, mets le sujet en résolu.
                • Partager sur Facebook
                • Partager sur Twitter
                  10 décembre 2018 à 13:00:33

                  bonjour,

                  est-il possible svp de publier la solution ?

                  merci d'avance

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Représenter un jeu de cartes sous forme de tableaux

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown