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

Java Discussion :

Création d'un jeu de cartes


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut Création d'un jeu de cartes
    Bonjour je suis un débutant en JAVA comme vous pouvez dire que je ne connais rien a part quelque truc , et le problème est que le prof nous a donner un mini projet dont je ne sais pas d'ou commencer ni quoi faire s'il vous plait est ce que quelqu'un pourrais m'aider j'ai pes beaucoup de temps pour rendre le projet ! voici une vu sur le cahier des charges :
    Le but de ce mini-projet est de créer une application qui simule un jeu de cartes. Le
    projet se composera de trois classes.
    · Une première classe représentera une carte de jeu qui aura comme variables
    d’instances un numéro et une chaine de caractères. Cette classe sera la base du jeu.
    · La deuxième classe représentera un paquet composé de 40 cartes.
    · La troisième classe représentera une main composée d’un certain nombre de
    cartes.
    A l’aide de ces trois classes il faut modéliser un jeu de cartes (choix libre). Dans la
    classe Main (programme principal) il faut créer un paquet de cartes distribuer les cartes à
    deux joueurs et lancer une partie. Pour les règles du jeu vous avez le choix.
    
    Je vous remercie d'avance

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Ok. Et qu'as-tu donc fait dans ces "quelques trucs" comme tu dis jusque la niveau code ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Ok. Et qu'as-tu donc fait dans ces "quelques trucs" comme tu dis jusque la niveau code ?
    On nous a appris que écrire des algorithmes et des fonctions de calculs c'est tt mais pour faire des applications de ce type ! Jamais

  4. #4
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    pour débuter j'ai créer les trois classes Carte , Paquet, Main voici les codes qui correspondent
    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
    public class Carte{
     
        public int m_number;
        public String m_str;
     
        public Carte(){
            m_number=0;
            m_str="";
        }
     
        public Carte(int number,String str){
            m_number=number;
            m_str=str;
        }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Paquet{
     
        public Carte[] m_paquet;
     
        public Paquet(){
            m_paquet = new Carte[40];
        }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import java.util.ArrayList;
     
    public class Main{
     
        ArrayList<Carte> m_main;
     
        public Main(){
            m_main = new ArrayList<Carte>();
        }
    }
    Voila aidez moi a compléter mes classes

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    pour la classe Paquet, j'utiliserais plutot une liste à la place d'un tableau, pour pouvoir retirer des cartes pour les distribuer

    ensuite tu fais dans cette classe :
    - une méthode remplir qui créé les 40 cartes :
    - une méthode mélanger qui mélange ces cartes (tu pourras utiliser la méthodes java.util.Collections.shuffle() pour mélanger ta liste)
    - une méthode pour distribuer, nommée par exemple, prochaineCarte() qui supprime une carte et la retourne, comme ça return m_paquet.remove(0)
    - une méthode pour connaitre le nombre de cartes qu'il reste dans le paquet, c'est à dire la taille de ta liste

    il suffira de boucler tant qu'il reste des cartes de distribuer les mains, c'est à dire alternativement de distribuer à chaque joueur une carte avec la méthode distribuer,
    ta classe Main aura donc des méthodes genre ajouter et jouer
    la distribution sera un truc dans le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while ( paquet.getNombre()>0 ) {
           Main mainJoueur1=new Main();
           Main mainJoueur2=new Main();
           for(int i=0;i<nbrdecarteadistribuer; i++){
                 mainJoueur1.ajouter(paquet.prochaineCarte());
                 mainJoueur2.ajouter(paquet.prochaineCarte());
           }
           jouerMain(mainJoueur1, mainJoueu2r);
    }
    par contre pour la classe carte, ça depend de ce que sont censées représenter les 2 variables int et string

    moi perso, j'aurais fait 2 enum, une pour la couleur et une pour la valeur, mais bon

    on va partir sur l'idée que le nombre c'est la valeur, et string la couleur

    un jeu standard fait 32 cartes (8 cartes par couleurs) ou 52 cartes (13 cartes par couleur), 54 (52 + 2 jokers), 56 (52 + 4 cavaliers du tarot), 78 pour le tarot

    mais 40 ? supposons qu'il s'agit des 8 valeurs du 32 plus le 5 et le 6

    donc pour remplir ton paquet de cartes, il suffit d'itérer pour chacune des 4 couleurs (carreau, pique, trèfle, coeur),

    tu itères sur les 10 valeurs de chaque couleur (bizarre ce jeu de 40 cartes, quand même)

    tu peux faire par exemple un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String[] couleurs=new String[]{"trèfle","coeur","carreau","pique"};
    for(String couleur : couleurs) {
        for(int valeur=0;valeur<10;valeur++){
            m_paquet.add(new Carte(valeur, couleur));
        }
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Salut,

    pour la classe Paquet, j'utiliserais plutot une liste à la place d'un tableau, pour pouvoir retirer des cartes pour les distribuer

    ensuite tu fais dans cette classe :
    - une méthode remplir qui créé les 40 cartes :
    - une méthode mélanger qui mélange ces cartes (tu pourras utiliser la méthodes java.util.Collections.shuffle() pour mélanger ta liste)
    - une méthode pour distribuer, nommée par exemple, prochaineCarte() qui supprime une carte et la retourne, comme ça return m_paquet.remove(0)
    - une méthode pour connaitre le nombre de cartes qu'il reste dans le paquet, c'est à dire la taille de ta liste

    il suffira de boucler tant qu'il reste des cartes de distribuer les mains, c'est à dire alternativement de distribuer à chaque joueur une carte avec la méthode distribuer,
    ta classe Main aura donc des méthodes genre ajouter et jouer
    la distribution sera un truc dans le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while ( paquet.getNombre()>0 ) {
           Main mainJoueur1=new Main();
           Main mainJoueur2=new Main();
           for(int i=0;i<nbrdecarteadistribuer; i++){
                 mainJoueur1.ajouter(paquet.prochaineCarte());
                 mainJoueur2.ajouter(paquet.prochaineCarte());
           }
           jouerMain(mainJoueur1, mainJoueu2r);
    }
    par contre pour la classe carte, ça depend de ce que sont censées représenter les 2 variables int et string

    moi perso, j'aurais fait 2 enum, une pour la couleur et une pour la valeur, mais bon

    on va partir sur l'idée que le nombre c'est la valeur, et string la couleur

    un jeu standard fait 32 cartes (8 cartes par couleurs) ou 52 cartes (13 cartes par couleur), 54 (52 + 2 jokers), 56 (52 + 4 cavaliers du tarot), 78 pour le tarot

    mais 40 ? supposons qu'il s'agit des 8 valeurs du 32 plus le 5 et le 6

    donc pour remplir ton paquet de cartes, il suffit d'itérer pour chacune des 4 couleurs (carreau, pique, trèfle, coeur),

    tu itères sur les 10 valeurs de chaque couleur (bizarre ce jeu de 40 cartes, quand même)

    tu peux faire par exemple un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String[] couleurs=new String[]{"trèfle","coeur","carreau","pique"};
    for(String couleur : couleurs) {
        for(int valeur=0;valeur<10;valeur++){
            m_paquet.add(new Carte(valeur, couleur));
        }
    }
    Merci pour ton aide c'est vraiment très gentil mais le problème pour moi c'est que je ne sais pas comment utiliser les méthodes ni les constructeurs ni rien je m'arrête dans ce que je fais au premier je ne sais pas comment continuer et j'ai pas trop compris ton code

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    tu devrais commencer par un tutoriel de base avant de chercher à faire un programme.

    J'ai du mal à comprendre comment un prof peut donner un devoir de programmation java a des élèves qui n'ont pas appris un minimum de java.

    Tu ne connais même pas d'autres langages que java ? Parce qu'il n'y a pas des masses de différences : il y a des "schémas" de principe que tu devrais reconnaître, déclaration et affectation, structures (boucle, if, else...), etc...
    ou du moins avoir une vague compréhension de ce que ça peut faire

    par exemple : entre un appel de fonction et un appel de méthode dans le concept de premier niveau, y'a pas ou peu de différences (je parle pas des aspects polymorphismes, surcharge, etc... qui vont intervenir niveau oop puis java), genre des détails comme le passage par référence, par exemple


    tu as quand même créé les trois classes (quasi vides certes) présentées dans ton post, donc tu n'est pas complètement à la rue.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Membre averti Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Points : 350
    Points
    350
    Par défaut
    Salut,

    je pense que pour vraiment continuer il faut que tu définisses les règles exactes que tu veux donner à ton jeu. Ça te donnera une idée du main déjà. Dessine le squelette de ton jeu et les classes viendront par la suite.

    Tchao !
    F*ck it ! Do it !

Discussions similaires

  1. Création d'un jeu de carte
    Par thebarbarius dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 08/07/2010, 20h50
  2. Création jeu de carte
    Par guti134 dans le forum Général Java
    Réponses: 3
    Dernier message: 20/05/2009, 20h57
  3. Création d'un jeu de carte en réseau
    Par FabaCoeur dans le forum Réseau
    Réponses: 10
    Dernier message: 26/01/2009, 14h04
  4. Réponses: 19
    Dernier message: 15/03/2005, 09h05
  5. IA avec un jeu de cartes
    Par Captain_JS dans le forum Intelligence artificielle
    Réponses: 3
    Dernier message: 07/02/2005, 10h07

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