Bonjour,
J'ai récemment eu un cours d'initiation à la programmation orientée objet et j'ai donc quelques bases en java.
J'essaye de créer un jeu d'énigme simple qui pose une image, une question, un Textfield ou entrer la réponse et un bouton pour vérifier.
J'avais pensé le réaliser avec le state pattern, chaque étape de l'énigme étant un état, renvoyant les 3 variables: l'image, la question et la réponse de l'énigme.
Seulement, j'ai toujours eu une lacune avec les variables, j'ai encore quelques difficultés avec les portées et les durées de vie. (oui, même si c'est la base -_-)
Bref, voila mon problème:
J'ai 3 classes, une avec mon interface graphique, une qui gère le bouton et une autre avec le modèle du jeu.
le bouton:
Et le modèle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 package controler; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import model.ModelEnigme; public class NextActionListener implements ActionListener { public void actionPerformed(ActionEvent arg0) { ModelEnigme me = new ModelEnigme(); me.next(); } }
Je compte remplacer les "if/else" de la méthode "next" par le code qui sert à gérer les états, avec l'interface etc...
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 package model; import java.util.ArrayList; import java.util.List; import javax.swing.JLabel; public class ModelEnigme{ public int = 1; public ModelEnigme(){ } public void next() { if(i == 1){ System.out.println("phase n° " +i); i++; } else if (i == 2){ System.out.println("phase n° " +i); i++; } else if (i == 3){ System.out.println("phase n° " +i); i++; } else if (i == 4){ System.out.println("phase n° " +i); i++; } else if (i == 5){ System.out.println("phase n° " +i); i++; } else if (i == 6){ System.out.println("phase n° " +i); i++; } else{ System.out.println("Jeu fini ! (" +i +")"); i++; } } }
Par contre, quand je fais le test pour voir si ma variable change bien, si elle est bien incrémentée, elle reste à la valeur 1 a chaque fois ...
Quelqu'un pourrait m'aider à régler mon petit problème et par la même occasion, critiquer mon code, me dire si j'ai pris la bonne architecture de départ, etc... pour que je puisse m'améliorer.
Merci
Partager