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 :

Projet Java - Jeu Quatro


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 10
    Par défaut Projet Java - Jeu Quatro
    Bonjour et bonsoir à toutes et à tous!

    Alors voilà, je suis un jeune étudiant en informatique et pour réussir cette année il me faut rendre un jeu qui tourne. Ce jeu c'est le Quatro, une sorte de Puissance 4. La différence est que les pions ne sont pas seulement soit blanc soit noir, ils sont aussi soit grands soit petits, soit carrés soit ronds et soit creusés soit pleins.

    Je rencontre divers problèmes durant mon codage et je crois que j'ai trop de questions. Les poser à mes amis étudiants fut une solution au début mais je crois que je prenais beaucoup trop de leurs temps, ce qui fait que je viens vers vous, Ô aide indispensable à ma réussite

    Par contre, je ne viens pas demander des réponses toutes faites, des éclaircissements seraient parfaits!
    Je vous remercie d'avance!

    Je vous explique où j'en suis :

    J'ai tout d'abord comme demandé sur ma feuille d'instructions crée quatre énumérations : filling, shape, color & size. Ces quatre énumérations, je les ai regroupées dans un objet Piece.

    Donc une piece a une couleur, une taille, est pleine ou vide et a une forme.
    Exemple : Piece = WHITE, HOLLOW, TALL & ROUND

    Maintenant je dois créer une liste d'objets de types pieces et y mettre les 16pieces de types différents.
    Voici mon code :

    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
    package quarto;
    import java.util.ArrayList;
    /**
     *
     * @author dell portable
     */
    public class Stock {
        private ArrayList pieces;
     
        public Stock() {
            ArrayList<Piece> pieces = new ArrayList<Piece>(16);
            this.pieces.add(new Piece(Filling.HOLLOW, Shape.ROUND, Size.SHORT, Color.WHITE));
    this.pieces.add(new Piece(Filling.HOLLOW, Shape.ROUND, 
            Size.SHORT, Color.WHITE));
    this.pieces.add(new Piece(Filling.HOLLOW, Shape.ROUND, 
            Size.SHORT, Color.BLACK));
    this.pieces.add(new Piece(Filling.HOLLOW, Shape.ROUND, 
            Size.TALL, Color.WHITE));
    this.pieces.add(new Piece(Filling.HOLLOW, Shape.ROUND, 
            Size.TALL, Color.BLACK));
    this.pieces.add(new Piece(Filling.HOLLOW, Shape.SQUARE, 
            Size.SHORT, Color.WHITE));
    this.pieces.add(new Piece(Filling.HOLLOW, Shape.SQUARE, 
            Size.SHORT, Color.BLACK));
    this.pieces.add(new Piece(Filling.HOLLOW, Shape.SQUARE, 
            Size.TALL, Color.WHITE));
    this.pieces.add(new Piece(Filling.HOLLOW, Shape.SQUARE, 
            Size.TALL, Color.BLACK));
    this.pieces.add(new Piece(Filling.SOLID, Shape.ROUND, 
            Size.SHORT, Color.WHITE));
    this.pieces.add(new Piece(Filling.SOLID, Shape.ROUND, 
            Size.SHORT, Color.BLACK));
    this.pieces.add(new Piece(Filling.SOLID, Shape.ROUND, 
            Size.TALL, Color.WHITE));
    this.pieces.add(new Piece(Filling.SOLID, Shape.ROUND, 
            Size.TALL, Color.BLACK));
    this.pieces.add(new Piece(Filling.SOLID, Shape.SQUARE, 
            Size.SHORT, Color.WHITE));
    this.pieces.add(new Piece(Filling.SOLID, Shape.SQUARE, 
            Size.SHORT, Color.BLACK));
    this.pieces.add(new Piece(Filling.SOLID, Shape.SQUARE, 
            Size.TALL, Color.WHITE));
    this.pieces.add(new Piece(Filling.SOLID, Shape.SQUARE, 
            Size.TALL, Color.BLACK));
        }
    Dans un premier temps, je me disais que c'était bête de tout marquer de cette manière. Imaginons que je doive coder un jeu qui regroupe 20 manieres différentes de faire un quatro...
    Je vois bien un arbre où :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       PIECE
                                                                                                  /        \
                                                                                         HOLLOW       SOLID
                                                                                          /       \         /     \
                                                                               ROUND      SQUARE
                                                                                  /    \
                                                                          TALL        SHORT
                                                                         /     \
                                                                    WHITE   BLACK
    Mais logiquement je vois pas trop où je peux gagner du temps à faire les choses ainsi.

    Ensuite en seconde question, on me demande de redéfinir toString() pour qu'elle retourne un String qui renseigne sur les caractéristiques des pieces de la liste sous la forme d'une liste numérotée.
    Exemple :

    0 WHITE SHORT HOLLOW SQUARE
    1 WHITE TALL SOLID SQUARE
    2 WHITE SHORT SOLID SQUARE
    etc...

    Mon probléme c'est que je comprends pas trop la méthode toString(). Donc je crois que ce bout de code est bon, mais comment faire une implémentation?
    Je pourrais faire un :
    -Pour i de 0 a 15 faire
    piece i + filling + shape + size + color
    -fin pour


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @Override
        public String toString() {
           for (int i = 0; i<=15; i++){
            return i + filling + shape + size + color;
    }    
        }
    Mais là je me dis que tout part en couilles xD Car je return 15fois ce qui est totalement n'importe quoi. Devrais-je faire une liste que je convertisse en String? ou un Tableau?

    Merci d'avance et désolé pour mon niveau :/

  2. #2
    Membre éprouvé Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Par défaut
    Je vais essayer de répondre au problème de ton toString() :


    On te demande que ton toString(), retourne un chaine de caractère contenant toutes les infos de chaque pièce non ? Je pense que tu 2 as de façon simple de faire ça :

    - Tu créer une String et tu ajoute à la suite chaque caractéristiques de chaque pièces dans ta boucle( en utilisant le += pour concaténer), et après tu renvoie en une seul fois ta String.
    - Tu créer un toString() dans ta classe pour la pièce qui renvoie une string contenant toutes les caractéristique de ta pièce, puis dans ton autre classe tu fait un toString() , tu reprend l'idée de la première solution, de façon que tu n'ai plus qu'à concaténer ta grand String, avec chaque toString() de tes pièces, puis tu return la String. ( c'est de l'optimisation)


    Je ne suis pas sur d'avoir été très clair, si tu as besoin d'autres infos demande ^^

  3. #3
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 10
    Par défaut
    Merci Arislas pour ta réponse!

    Mais comment récupérer les éléments d'une liste un à un? Je veux dire, System.out.println(maListe) va me sortir toute ma liste. Puis-je utiliser ma liste comme un tableau? System.out.println(maListe[0]) ?

    Merci d'avance!

    EDIT :

    Qu'en penses-tu?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       @Override
        public String toString() {
            grand = null;
           for (int i = 0; i<pieces.size(); i++){
           String petit = ""+i + pieces.get(i); 
               grand = grand + "/n" + petit;
     
    }   
           return grand;
        }

  4. #4
    Membre éprouvé Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Par défaut
    J'avais pas vu , oui ton code est à peu près bon, tu peu utiliser un ArrayList comme un tableau vu que c'est une sorte de tableau, ton code devrait donc fonctionner

    Par contre c'est toi qui à créer l'arrayList ? Parce que tu devrait plutôt stocker la string contenant ( TAILLE ....) dedans plutôt que les pièces en elle-mêmes.

    Sinon , si la méthode get() te return une String contenant les infos de la pièce alors oui ton code marche. Il ne te reste plus qu'à println() ta variable grand.

  5. #5
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 10
    Par défaut
    Oui c'est moi qui aie créé cette ArrayList. Je ne comprends pas pour ce que tu dis ensuite. Ce serait mieux de mettre pieces.get(i).filling et les autres plutôt que la piece en elle-même c'est ça?

    Et la méthode get() me retourne un objet Piece je crois, mais de ce que j'ai lu, String quelquechose = converti tout en String si tu débuts avec ""

  6. #6
    Membre éprouvé Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Par défaut I
    Il serait mieux de remplir ta liste de String du genre ( TALL BLACK HOLLOW ...), comme ça il te suffit de les récupérer dans ton toString() avec pieces[i] .

Discussions similaires

  1. [Conseil]Projet de jeu en binôme JAVA
    Par Vivian Pennel dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 30/07/2008, 17h21
  2. [UC] Projet Java/UML Jeu type Memory
    Par akito dans le forum Cas d'utilisation
    Réponses: 11
    Dernier message: 17/04/2008, 13h33
  3. Cherche Projet de jeu 2D ou 3D
    Par poussinphp dans le forum Projets
    Réponses: 9
    Dernier message: 23/05/2006, 18h36
  4. [Eclipse 3.0.1]Ouvrir un projet java deja existant
    Par paca_mike dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/04/2005, 13h23
  5. Comment eviter de dedoubler projet c++ et projet java/applet
    Par buzzz dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 13/10/2004, 13h02

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