Bonjour,
je suis en train de concevoir un jeu de question réponse, et là je suis au stade d'alimentation des catégories avec des questions je fais tout comme il faut , et quand je consulte mes catégories ça me mets la derniere catégorie dupliqué au nombre de catégories que j'ai saisie auparavant, après je sauvegarde je quitte le jeu et quand j le redémarre je consulte mes catégories et là ça garde bien le nom de la catégories mais les questions et réponse saisies ça m'affiche null à la place.
je vous mets le code ci dessous merci :
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 import java.io.Serializable; public class Questrep implements Serializable { static String question;//question posé static String reponse;//bonne réponse static String rep1;//réponse erroné static String rep2; static String rep3; static String rep4; static int level;//niveau de difficulté d'une question 1 pour question simple et 2 pour question difficile public Questrep (String quest,String rep,String rep1,String rep2,String rep3,String rep4,int lev)//constructeur de la classe Questrep { Questrep.question=quest; Questrep.reponse=rep; Questrep.rep1=rep1; Questrep.rep2=rep2; Questrep.rep3=rep3; Questrep.rep4=rep4; Questrep.level=lev; } public void afficher_questrep() { System.out.println("la question est:" +this.question); System.out.println("la bonne réponse est:" +this.reponse); System.out.println("la premiere mauvaise réponse est:"+this.rep1); System.out.println("la deuxieme mauvaise réponse est:"+this.rep2); System.out.println("la troisieme mauvaise réponse est:"+this.rep3); System.out.println("la quatrieme mauvaise réponse est:"+this.rep4); System.out.println("la cinquieme mauvaise réponse est:"+this.level); } }
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
46
47
48
49
50
51
52
53
54
55
56 import java.io.Serializable; import java.util.Enumeration; import java.util.Vector; public class Categorie implements Serializable { String nom_Categ; //le type de la catégorie public Vector<Questrep> v; //on stockera nos questions réponses dans une classe Vector int nb_quest_rep; //le nombre des questions réponses dans la catégorie public void initialise() //initialise le Vector { v= new Vector<Questrep> (); } public boolean ajouter(Questrep quest)throws Exception//ajoute des questions réponses à la catégorie { if (v.add(quest))//retourne true si l'ajout s'est bien déroulé return true; else//retourne false sinon return false; } public Categorie(String nom)//constructeur de categorie { this.nom_Categ=nom; } public boolean supprimer(Questrep quest)//ajoute des questions réponses à la catégorie { if (v.remove(quest))//retourne true si la suppression s'est bien déroulé return true; else//retourne false sinon return false; } public void afficher_categ() { System.out.println("le nom de la catégorie est:" + this.nom_Categ); for(int i=0;i<v.size();i++) { ((Questrep) v.elementAt(i)).afficher_questrep(); } } }
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 import java.util.*; import java.io.*; public class Listecateg implements Serializable { public static Vector<Categorie> v; static int nb_categ=0;//nombre de categorie dans la liste public static void initialiser() //initialise le Vector { v= new Vector<Categorie> (); } public static boolean ajouter_categ(Categorie catego)throws Exception//ajoute une categorie à la collection { if(v.add(catego))//retourne true si l'ajout s'est bien déroulé { System.out.print("l'ajout s'est bien deroulé\n"); nb_categ++; return true; } else { System.out.print("l'ajout n'est pas effectué\n"); return false; } } public boolean supprimer_categ(Categorie categ)//supprimer une categorie à la collection { if (v.remove(categ))//retourne true si la suppression s'est bien déroulé return true; else//retourne false sinon return false; } public static void afficher_list() { for(int i=0;i<v.size();i++) { ((Categorie) v.elementAt(i)).afficher_categ(); } } public static void enregistrer_categ(String nom_fichier)throws Exception { ObjectOutputStream oos; FileOutputStream fos; try { fos = new FileOutputStream(nom_fichier); oos = new ObjectOutputStream(fos); oos.writeObject(v); oos.close(); } catch (IOException e) { e.printStackTrace(); } } public static void charger(String nom_fichier) throws Exception { ObjectInputStream ois; FileInputStream fis; try { fis = new FileInputStream(nom_fichier); ois = new ObjectInputStream(fis); v=(Vector<Categorie>) ois.readObject(); afficher_list(); ois.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152 import java.util.Vector; public class Lejeu { public static void main(String [] args) throws Exception { System.out.println("*********************************************************************************"); System.out.println(" Bonjour et bienvenue dans le jeu "); System.out.println("*********************************************************************************"); String pseudo = null;//pseudo admin String pass = null;//pass admin int a = 1; do { System.out.println("veuillez choisir :"); System.out.println("1 ==> Administrateur"); System.out.println("2 ==> Joueur"); System.out.println("3 ==> Quitter"); int ch=Lire.i(); switch(ch) { //Administrateur case 1: System.out.println("veuillez entrer votre pseudo:"); pseudo=Lire.S(); System.out.println("veuillez entrer votre mot de passe:"); pass=Lire.S(); if(pseudo.equals("admin") && pass.equals("admin"))//si pseudo et pass sont bons authentification { int ch1; do { System.out.println("bienvenue M. l'Administrateur"); System.out.println("1 ==> Créer un ensemble de catégorie"); System.out.println("2 ==> Ajouter une catégorie"); System.out.println("3 ==> Supprimer une catégorie"); System.out.println("4 ==> Consulter les catégories"); System.out.println("5 ==> Sauvegarder"); System.out.println("6 ==> Quitter"); ch1=Lire.i(); if(ch1==1) { creer(); } if(ch1==2)//Ajouter une catégrie { char repo;//la réponse au fait si on veut ajouter une autre catégorie do { ajouter(); System.out.println("voulez vous ajouter une autre catégorie ?"); repo=Lire.c(); } while(repo=='o'); System.out.println("vos catégorie sont:"); Listecateg.enregistrer_categ("soufiane.ser"); } if(ch1==3)//Supprimer une catégrie { } if(ch1==4)//consulter, charger { charger(); } if(ch1==5)//sauvegarder { enregistrer(); } if(ch1==6) { System.out.println("à bientot"); break; } } while(ch1!=6); } else { a=0;//variable servant à reboucler en cas d'echec d'identification System.out.println("echec"); } //Joueur //case 2: System.out.println("veuillez entrer votre pseudo"); //String pseudo_j=Lire.S(); } } while(a==0); } public static void creer() { Listecateg.initialiser(); } public static void ajouter() throws Exception { System.out.println("entrer le nom de votre catégorie"); String categ=Lire.S(); Categorie C=new Categorie(categ); C.initialise(); int compt=0; do//ajouter des questions réponses à la categorie { System.out.println("entrer votre question"); String quest=Lire.S(); System.out.println("entrer votre bonne réponse"); String rep=Lire.S(); System.out.println("entrer votre premiere mauvaise réponse"); String rep1=Lire.S(); System.out.println("entrer votre deuxieme mauvaise réponse"); String rep2=Lire.S(); System.out.println("entrer votre troisieme mauvaise réponse"); String rep3=Lire.S(); System.out.println("entrer votre quatrieme mauvaise réponse"); String rep4=Lire.S(); System.out.println("entrer le level de la question");//1 facile 2 difficile int level=Lire.i(); Questrep qr=new Questrep(quest,rep,rep1,rep2,rep3,rep4,level); C.ajouter(qr); compt++; } while (compt<2); Listecateg.ajouter_categ(C); } public static void enregistrer() throws Exception { Listecateg.enregistrer_categ("soufiane.ser"); } public static void charger() throws Exception { Listecateg.charger("soufiane.ser"); } }
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 import java.io.*; public class Lire { public static String S() // Lire un String { String tmp = ""; char C='\0'; try { while ((C=(char) System.in.read()) !='\n') { if (C != '\r') tmp = tmp+C; } } catch (IOException e) { System.out.println("Erreur de frappe"); System.exit(0); } return tmp; } // fin de S() public static byte b() // Lire un entier byte { byte x=0; try { x=Byte.parseByte(S()); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static short s() // Lire un entier short { short x=0; try { x=Short.parseShort(S()); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static int i() // Lire un entier { int x=0; try { x=Integer.parseInt(S()); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static long l() // Lire un entier long { long x=0; try { x=Long.parseLong(S()); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static double d() // Lire un double { double x=0.0; try { x=Double.valueOf(S()).doubleValue(); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static float f() // Lire un float { float x=0.0f; try { x=Float.valueOf(S()).floatValue(); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static char c() // Lire un caractere { String tmp=S(); if (tmp.length()==0) return '\n'; else { return tmp.charAt(0); } } }
Partager