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

Langage Java Discussion :

Jeu Poker (aide pour tirage au sort de cartes)


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 46
    Points : 26
    Points
    26
    Par défaut Jeu Poker (aide pour tirage au sort de cartes)
    Bonjour,

    voila je suis débutant en java et mon but est de créer un jeu de poker en java en utilisant le mode console et avec une gestion serveur/ multi-clients. Pour l'instant, j'ai commencé à faire une classe Poker que voici en générant un jeu de 52 cartes et pour 4 joueurs je tire au hasard sans remise 3 cartes. J'ai donc utilisé random mais ce qui est bizarre c'est que pour les joueurs 2, 3 et 4 je me retrouve toujours avec des valeurs variant entre 2 et 4 alors que pour le premier joueur, je peux avoir des as, des valets,... Pouvez-vous m'expliquez ce que j'ai fais de mal? Merci.

    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
    public class Poker {
        public static void main(String[] args) {
            int M = Integer.parseInt(args[0]);
     
             // creation du jeu des 52 cartes
             String[] couleur = { "Trèfle", "Carreaux", "Coeur", "Pic" };
             String[] figure = { "2", "3", "4", "5", "6", "7", "8", "9", "10","Valet", "Reine", "Roi", "As"};
     
     
             int COULEUR = couleur.length;
             int FIGURE = figure.length;
             int N = COULEUR * FIGURE;
     
     
             String[] deck = new String[N];
             for (int i = 0; i < FIGURE; i++)
                 for (int j = 0; j < COULEUR; j++)
                     deck[COULEUR*i + j] = figure[i] + " de " + couleur[j];
     
            // rangement des cartes de façon aléatoire
            for (int i = 0; i < M; i++)  {
                int r = i + (int) (Math.random() * (N-i));
                String t = deck[r];
                deck[r] = deck[i];
                deck[i] = t;
            }
     
            for (int k=1; k< 5; k++){
            System.out.println("Joueur" + k);
             for (int i = (k-1)*3; i < M*k; i++)
            	System.out.println(deck[i]);
     
     
     
        }
        }
    }

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Points : 31
    Points
    31
    Par défaut
    Le commentaire qui suit ne réponds pas vraiment à ta question.

    Moi j'aurais fais une classe Carte et une classe Joueur.
    Tu n'utilises pas vraiment les concepts de la programmation orientée objet.

    A la limite, si c'était juste pour t'entrainer, c'est pas trop grave. Mais vu que tu comptes faire un jeu assez évolué, il faudrait mieux organiser..

    Ensuite, rapidement, si tu as un ArrayList de Carte, tu peux faire un Collections.shuffle(...) pour mélanger les cartes..

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    Je te remercie de ta réponse. Comme tu l'as dit ce n'est qu'un programme pour m'entraîner pour essayer de comprendre toutes les fonctionnalités.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Points : 31
    Points
    31
    Par défaut
    Ok. Dans ce cas, je vais regarder ton code.

    D'abord une question, à quoi correspond ta variable M?


    edit: Je peux, au passage, te proposer une solution avec une ArrayList, au lieu d'un tableau de String.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    ma variable M permet de définir en arguments le nombre de joueurs pour un poker

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Points : 31
    Points
    31
    Par défaut
    Ok, c'est bien ce que je pensais, mais je voulais avoir la confirmation.
    Dans ce cas, cela veut dire que lorsque tu mélanges les cartes, tu ne fais que M permutations, soit 4 fois, donc c'est normal que tu obtiennes des cartes quasi identiques.

Discussions similaires

  1. [XL-2010] modification pour tirage au sort 5 fois différents
    Par rocornet dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/11/2013, 16h35
  2. [XL-2010] Modification pour tirage au sort 5 fois différents
    Par rocornet dans le forum Excel
    Réponses: 1
    Dernier message: 12/11/2013, 19h19
  3. [XL-2013] Fonction ALEA pour tirage au sort
    Par lesurfeurdargent dans le forum Excel
    Réponses: 2
    Dernier message: 17/10/2013, 15h34
  4. [XL-2003] Formule pour tirage au sort aléatoire
    Par MattLeBlanc dans le forum Excel
    Réponses: 5
    Dernier message: 16/07/2011, 12h20
  5. Aide pour creer une sorte de formulaire enquete
    Par biketone dans le forum Flash
    Réponses: 0
    Dernier message: 07/05/2010, 17h31

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