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 :

[Résolu] Jeu Puissance 4


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Par défaut [Résolu] Jeu Puissance 4
    Bonjour,

    Je suis en train de faire un projet puissance 4 mais je ne sais pas si mes fonctions "gagner" (horizontalement, verticalement, diagonales) sont bonnes... Pouvez-vous m'aider svp ?

    Bonne journée !

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Au lieu de donner l'intégralité de ton intitulé de projet et de ta classe, pourquoi ne pas nous isoler tes portions de code où tu te poses des questions ?
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Salut,

    Vu comment ton programme est structuré, tu peux facilement écrire des petits programmes de simulation, et tester si tes méthodes font ce qu'elles sont censées faire. On appelle ça des tests unitaires.
    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.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    Au lieu de donner l'intégralité de ton intitulé de projet et de ta classe, pourquoi ne pas nous isoler tes portions de code où tu te poses des questions ?


    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
    static boolean aGagneHor(int NumJoueur, int y, int x) {
     
    		int NbCase = 0;
    		int k = 1;
    		int i = x;
     
    		while (NbCase <= 4 && k <= 4 && i <= grille[0].length-1) {
    			if (grille[y][i] == NumJoueur) {
    				NbCase = NbCase + 1;
    			}
    			k++;
    			i++;
    		}
    		if (NbCase == 4) {
    			return true;
    		} else {
    			return false;
    		}
    	}

  5. #5
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Pourquoi ne pas faire quelques fonctions ?
    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
    /*
     * Indique si les quatre valeurs correspond à une victoire
     */
    public boolean isLineWin(int cel1, int cel2, int cel3 , int cel4);
    /*
     * Par cours le tableau dans le sens horizontale pour vérifier si il y a une victoire dedans
     */
    public boolean isTableHorizontaleWin(int[][] board);
    /*
     * Par cours le tableau dans le sens vertical pour vérifier si il y a une victoire dedans
     */
    public boolean isTableVerticalWin(int[][] board);
    /*
     * Par cours le tableau dans le sens Diagonal pour vérifier si il y a une victoire dedans
     */
    public boolean isTableDiagonalWin(int[][] board);
    /*
     * Par cours le tableau dans tout les sens pour vérifier si il y a une victoire dedans
     */
    public boolean isTableWin(int[][] board);
    Chacune de ces méthodes sont relativement simple à écrire. Et à valider !

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  6. #6
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par kolodz Voir le message
    Pourquoi ne pas faire quelques fonctions ?
    Bah, le sujet est assez directif sur les méthodes à écrire. Pas la peine d'en faire d'autres. D'autant plus, que celles proposées par le sujet ne sont pas spécialement difficiles à tester.
    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.

  7. #7
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Bah, le sujet est assez directif sur les méthodes à écrire. Pas la peine d'en faire d'autres. D'autant plus, que celles proposées par le sujet ne sont pas spécialement difficiles à tester.
    Je n'avais pas vue l'image de l'énoncé.

    J'avoue que le while pour faire la validation, c'est un peu "too mutch"....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    static boolean aGagneHor(int NumJoueur, int y, int x) {
    	if(y>0 && y<grille.length && x>0 && x+3 <<grille[y].length){
    		int case1 = grille[y][i];
    		int case2 = grille[y][i+1];
    		int case3 = grille[y][i+2];
    		int case4 = grille[y][i+3];
    		if(case1 == NumJoueur && case2 == NumJoueur && case3 == NumJoueur && case4 == NumJoueur){
    			return true;
    		}
    	}
    	return false;
    }
    Ce qui me semble plus simple...

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  8. #8
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Hero13 Voir le message
    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
    static boolean aGagneHor(int NumJoueur, int y, int x) {
     
    		int NbCase = 0;
    		int k = 1;
    		int i = x;
     
    		while (NbCase <= 4 && k <= 4 && i <= grille[0].length-1) {
    			if (grille[y][i] == NumJoueur) {
    				NbCase = NbCase + 1;
    			}
    			k++;
    			i++;
    		}
    		if (NbCase == 4) {
    			return true;
    		} else {
    			return false;
    		}
    	}
    Si tu as testé cette méthode, tu as dû voir qu'elle répondait bien true lorsqu'il y a exactement 4 cases successives du joueur NumJoueur, en partant de la colonne x, sur la ligne y, et false dans le cas contraire. La signature étant conforme à l'énoncé, tu as répondu à la question. C'est le principal. Si certains pensent avoir le temps et l'envie de te donner des conseils pour améliorer telle ou telle partie, grand bien leur fasse.
    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.

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Si tu as testé cette méthode, tu as dû voir qu'elle répondait bien true lorsqu'il y a exactement 4 cases successives du joueur NumJoueur, en partant de la colonne x, sur la ligne y, et false dans le cas contraire. La signature étant conforme à l'énoncé, tu as répondu à la question. C'est le principal. Si certains pensent avoir le temps et l'envie de te donner des conseils pour améliorer telle ou telle partie, grand bien leur fasse.
    Effectivement, j'ai testé dans la fonction main et ça fonctionne. Merci !

    Merci beaucoup Pat, c'est vrai que c'est plus simple à lire avec ton code par contre ça veut dire quoi << dans la condition ? Tu voulais marqué <= ?

  10. #10
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    En principe, il y a qu'un <
    C'est juste tout les contrôles pour vérifier les index.

    Pour les autres fonctions (c le mp), met l'ensemble ici.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

Discussions similaires

  1. Algorithme Min-Max appliqué au jeu Puissance 4 en C .
    Par hebmaster dans le forum Intelligence artificielle
    Réponses: 17
    Dernier message: 29/10/2012, 07h33
  2. [DC] Jeu Puissance 4
    Par lkryss dans le forum Diagrammes de Classes
    Réponses: 6
    Dernier message: 15/01/2008, 18h22
  3. Jeu Puissance 4 en 3D
    Par macbang dans le forum Fortran
    Réponses: 0
    Dernier message: 05/12/2007, 00h21
  4. Réponses: 1
    Dernier message: 13/05/2007, 13h54

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