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 :

Création d'une table + tri


Sujet :

avec Java

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut Création d'une table + tri
    Bonjour je dois faire un exo d'un jeux de carte.

    Quel est la solution la plus pratique pour

    - créer un jeux de 52 cartes et les triées

    j'avais penser de crée un tableau dynamique arrayliste ?
    - générer des cases de nombre de 2 à 14 (11 pour valet et 14 pour l'as) pour les charger
    - générer 4 fois ces même nombres (pour le pique, coeur,carreau et trèfle).

    puis les mélanger.
    merci de vos suggestions

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    C'est pas mal.

    - Plutôt que numéroter de 2 à 14 je recommanderais un enum des valeurs possibles. Elles garderont quand même un ordre.
    - Même chose pour les couleurs, un enum.
    - Trier et mélanger sont deux actions opposées. C'est lequel que tu veux ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    merci de la réponse,
    effectivement je me suis trompé de langage ,
    il faut que je charge + je tries.
    pour l'exo il ne faut pas s'occuper des couleurs.
    il faut essayer de faire au plus simple, donc je pense qu'il faut je je me passe de énum,
    car il n'a pas été vu dans le cours.

    j'ai essayer ceci les 13 cartes

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
            ArrayList pioche = new ArrayList();
     
     
    //pour le trèfle
            for(int i=2; i < =14;i++)
            {
                pioche.add(i);
                System.out.println(i);
            }
    //pour le carreau
            for(int i=2; i < =14;i++)
            {
                pioche.add(i);
                System.out.println(i);
            }
    //pour le pique
            for(int i=2; i < =14;i++)
            {
                pioche.add(i);
                System.out.println(i);
            }
    //pour le dame
            for(int i=2; i < =14;i++)
            {
                pioche.add(i);
                System.out.println(i);
            }
     
           //mélanger l'array liste ...
    par contre il y a t'il comme PHP un moyen de voir à l'intérieur de la liste , comme la commande "var_dump" , je trouve ça plus pratique que de faire un
    System.out.println(i);

    pour l'exo je vais essayer de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        public void chargerPioche()
        {
            //les 4 types cartes on un indice P = pique, C=carreau,T=trèsfle,D=dame
     
     
            for(int i=2; i <= 14;i++)
            {
                pioche.add("P"+i);
                System.out.println(i);
            }
        }
    je vais charger dans le tableau le carte sous forme
    P2 pour le 2 de piques.

    par contre comment il faut faire pour arriver à charger P2 sous forme de chaine ?
    j'ai essayer de faire sous cette forme en castant le valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                pioche.add("P"+(String)i); //je charge la carte 2 de trèfle

    mais apparemment ça ne fonctionne pas ...

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Citation Envoyé par keokaz Voir le message
    il faut essayer de faire au plus simple, donc je pense qu'il faut je je me passe de énum,
    car il n'a pas été vu dans le cours.
    Ok. Dans ce cas, 2 à 14 pourquoi pas... Au moins la plus forte est associée au nombre le plus grand.

    Citation Envoyé par keokaz Voir le message
    j'ai essayer ceci les 13 cartes
    Oui enfin c'est quatre fois la même chose. Une boucle de 1 à 4 ne serait-elle pas plus pratique ?

    Citation Envoyé par keokaz Voir le message
    par contre il y a t'il comme PHP un moyen de voir à l'intérieur de la liste , comme la commande "var_dump" , je trouve ça plus pratique que de faire un
    System.out.println(i);
    Bah.... System.out.println(pioche); -_-°

    Citation Envoyé par keokaz Voir le message
    pour l'exo je vais essayer de faire ceci :
    Pour info la 4e couleur c'est Cœur, pas Dame. Du coup il y en a deux qui commencent par C.

    Citation Envoyé par keokaz Voir le message
    par contre comment il faut faire pour arriver à charger P2 sous forme de chaine ?
    "p"+2 marche ma foi très bien.
    L'opérateur + est toujours l'opérateur de concaténation quand l'un de ses opérandes est une chaîne. Et pour concaténer une chaîne et "autre chose," Java fait toujours une conversion implicite du "autre chose" en chaîne.

    Citation Envoyé par keokaz Voir le message
    j'ai essayer de faire sous cette forme en castant le valeur

    [...]

    mais apparemment ça ne fonctionne pas ...
    Effectivement, la conversion en String ne peut pas se faire avec un cast. Mais elle se fait implicitement avec une concaténation de toute manière, alors ce n'est pas gênant.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    Bah.... System.out.println(pioche); -_-°

    merci je n'avais pas penser à plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            this.chargerPioche();
            System.out.println("**** ma pioche contient ****");
            System.out.println(this.pioche);
    le résultat


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    **** ma pioche contient ****
    [P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14]
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    public class JeuDeBataille {
     
        ArrayList pioche = new ArrayList();
     
        public JeuDeBataille() {
            System.out.println("instance jeu de bataille");
     
            Joueur J1 = new Joueur(); //creation du joueur 1
            Joueur J2 = new Joueur(); //creation du joueur 2
            //Carte carte = new Carte();//creation de carte
            //DistribuerCarte();
            this.chargerPioche();
            System.out.println("**** ma pioche contient ****");
            System.out.println(this.pioche);
        }
     
        public void DistribuerCarte() {
            System.out.println("distribution de carte");
        }
     
        public void chargerPioche()
        {
            //les 4 types cartes on un indice P = pique, C=carreau,T=trèsfle,D=dame
     
     
            for(int i=2; i <= 14;i++)
            {
                pioche.add("P"+i);
     
            }
        }
     
     
     
    }
    maintenant il me reste à mélanger
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package jeux;
     
    import java.util.ArrayList;
     
    public class JeuDeBataille {
     
        ArrayList pioche = new ArrayList();
     
        public JeuDeBataille() {
            System.out.println("instance jeu de bataille");
     
            Joueur J1 = new Joueur(); //creation du joueur 1
            Joueur J2 = new Joueur(); //creation du joueur 2
            //Carte carte = new Carte();//creation de carte
            //DistribuerCarte();
            this.chargerPioche("P");
            this.chargerPioche("C");
            this.chargerPioche("T");
            this.chargerPioche("S");
            System.out.println("**** ma pioche contient ****");
            System.out.println(this.pioche);
        }
     
        public void DistribuerCarte() {
            System.out.println("distribution de carte");
        }
     
        public void chargerPioche(String type)
        {
            //les 4 types cartes on un indice P = pique, C=carreau,T=trèsfle,D=dame
     
            for(int i=2; i <= 14;i++)
            {
                pioche.add(type+i);
     
            }
        }
     
    }

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Mélanger aléatoirement est loin d'être trivial... Il va falloir nous dire qu'est-ce que tu as le droit d'utiliser qui soit déjà fourni, pour le faire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Il va falloir nous dire qu'est-ce que tu as le droit d'utiliser qui soit déjà fourni, pour le faire.
    En fait je ne sais pas trop,
    l'exo consiste à faire un jeux de bataille,

    Maintenant que j'ai une pile de carte mélanger, il me faut les distribuer,
    par quel moyen je doit procéder pour la méthode de distribution?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            Joueur J1 = new Joueur(); //creation du joueur 1
            Joueur J2 = new Joueur(); //creation du joueur 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        public void DistribuerCarte() {
            System.out.println("distribution de carte");
        }
    pour cela j'ai un class qui s'appelle joueur
    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
    21
    22
     
    package jeux;
     
    import java.util.ArrayList;
     
     
    public class Joueur {
     
        public ArrayList son_paquet;
     
        public Joueur()
        {
            System.out.println("instance joueur");
        }
     
        public void chargeSonPaquet(String carte)
        {
     
        }
     
     
    }
    faut t'il charger la carte dans le constructeur ? ou utiliser la méthode chargeSonPaquet() ?

    Que pensez si je prends le nombre total de carte dans la pioche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            System.out.println("**** ma pioche contient"  +this.pioche.size()+"****" );
    et je le divise pas 2 joueurs et que je charge ces 2 arrays listes dans l'objet joueurs?

    d'ailleur est t'il possible de compter le nombre d'instance de joueur ? ou il faut passer
    par une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int nb_joueur = 0;
            Joueur J1 = new Joueur(); //creation du joueur 1
    nb_joueur ++;
            Joueur J2 = new Joueur(); //creation du joueur 2
    nb_joueur ++;

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    finalement j'ai adopté pour le moment quelque chose de plus simple
    voici l'objet Carte
    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
    21
     
    //l' objet carte
    public class Carte {
     
        private String titre;
        private int puissance;
     
        public Carte(String titre, int puissance)
        {
                    this.titre = titre;
                    this.puissance = puissance;
        }
     
        public boolean estPlusFortQue(Carte unAutreCarte){
            return puissance >unAutreCarte.puissance;
        }
     
        public String getTitre(){
            return titre;
        }
    }

    je charge les 52 cartes comme ceci

    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
     
        ArrayList pioche = new ArrayList();
            this.chargerPioche("P");//pique
            this.chargerPioche("C");//coeur
            this.chargerPioche("T");//trefle
            this.chargerPioche("S");//carreau
    //......
        public void chargerPioche(String figure) {
            //les 4 types cartes on un indice P = pique, C=carreau, T=trèsfle, S=carreau
     
            for (int i = 2; i <= 14; i++) {
                Carte c = new Carte(figure, i);//instance de la carte valuer + sa figure
                pioche.add(c);
            }
        }
    je divise la pile en 2 pour 2 joueurs
    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
     
     
     
        public void DistribuerCarte() {
     
            for (int i = 0; i < pioche.size(); i++) {
                if (i < pioche.size() / 2) {
     
                   J1.ChargeSonPaquet(this.pioche.get(i));
                }
     
                if (i >= pioche.size() / 2) {
                //    System.out.println(i + "**");
                }
            }
     
        }

    par contre je coince avec cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                   J1.ChargeSonPaquet(this.pioche.get(i));
    il n'aime pas que je lui donne ce paramètre, pourtant c'est bien un type carte que je lui donne :'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.pioche.get(i)
    voici la class entière

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
     
    import java.util.ArrayList;
    import java.util.Collections;
     
    public class JeuDeBataille {
     
        ArrayList pioche = new ArrayList();
        Joueur J1 = new Joueur(); //creation du joueur 1
        Joueur J2 = new Joueur(); //creation du joueur 2
     
        public JeuDeBataille() {
     
            System.out.println("instance jeu de bataille");
     
     
            //Carte carte = new Carte();//creation de carte
            //DistribuerCarte();
            this.chargerPioche("P");//pique
            this.chargerPioche("C");//coeur
            this.chargerPioche("T");//trefle
            this.chargerPioche("S");//carreau
            Collections.shuffle(this.pioche);
            System.out.println("**** ma pioche contient" + pioche.size() + "****");
            System.out.println(this.pioche);
            DistribuerCarte();
        }
     
        public void DistribuerCarte() {
     
            for (int i = 0; i < pioche.size(); i++) {
                if (i < pioche.size() / 2) {
     
                   J1.ChargeSonPaquet(this.pioche.get(i));
                }
     
                if (i >= pioche.size() / 2) {
                //    System.out.println(i + "**");
                }
            }
     
        }
     
        public void chargerPioche(String figure) {
            //les 4 types cartes on un indice P = pique, C=carreau, T=trèsfle, S=carreau
     
            for (int i = 2; i <= 14; i++) {
                Carte c = new Carte(figure, i);//instance de la carte valuer + sa figure
                pioche.add(c);
            }
        }
    }
    voci sa class joueur

    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
     
    public class Joueur {
     
        public ArrayList son_paquet;
     
        public Joueur()
        {
            System.out.println("instance joueur");
        }
     
        public void ChargeSonPaquet(Carte c)
        {
            System.out.println(c);
           // this.son_paquet.add(c);
        }
     
     
    }

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/08/2014, 14h10
  2. Question sur la création d'une table
    Par air dans le forum Oracle
    Réponses: 4
    Dernier message: 23/10/2005, 13h46
  3. Réponses: 4
    Dernier message: 19/10/2005, 12h26
  4. Création d'une table avec foreign key
    Par lepierre dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/09/2004, 15h20
  5. INTERBASE Création d'une table
    Par Corben dans le forum InterBase
    Réponses: 2
    Dernier message: 19/06/2004, 21h55

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