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 !
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 !
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/
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.
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; } }
Pourquoi ne pas faire quelques fonctions ?
Chacune de ces méthodes sont relativement simple à écrire. Et à valider !
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);
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.
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.
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"....
Ce qui me semble plus simple...
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; }
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.
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.
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.
Partager