This repository has been archived by the owner on Oct 28, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathStoreObjectT.java
190 lines (175 loc) · 8.15 KB
/
StoreObjectT.java
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
import java.io.*;
import java.util.Scanner;
/* La classe StoreObject permet de mieux stocker les GrillesT et ses fils plus facilement et de montrer les grilles de facon plus simplifier */
public class StoreObjectT {
// Fonction permettant de sauvegarder les niveaux customs
public void storec(GrilleT gr, String str){
OutputStream ops; // Flux de sortie
ObjectOutputStream objOps = null; // Objet de Flux de sortie
try {
ops = new FileOutputStream("terminal/custom/"+str+".ser"); // On dit que le flux de sortie est un objet effectif FileOutPutstream
objOps = new ObjectOutputStream(ops); // On assigne l'objet
objOps.writeObject(gr); // On assigne l'objet à objetouputstream
objOps.flush();
} catch (IOException e) {
e.printStackTrace();
} finally{
try{
if(objOps != null) objOps.close();
} catch (Exception ignored){
}
}
}
// Fonction permettant de stocker les niveaux
public void store(GrilleT gr, String str){
OutputStream ops;
ObjectOutputStream objOps = null;
try {
ops = new FileOutputStream("terminal/niveau/"+str); // On dit que le flux de sortie est un objet effectif FileOutPutstream
objOps = new ObjectOutputStream(ops); // On assigne l'objet
objOps.writeObject(gr); // On créer l'objet
objOps.flush();
} catch (IOException e) {
e.printStackTrace();
} finally{
try{
if(objOps != null) objOps.close();
} catch (Exception ignored){
}
}
}
// Fonction permettant de stocker les niveaux data
public void stored(GrilleT gr){
OutputStream ops;
ObjectOutputStream objOps = null;
try {
ops = new FileOutputStream("terminal/data.ser"); // On dit que le flux de sortie est un objet effectif FileOutPutstream
objOps = new ObjectOutputStream(ops); // On assigne l'objet
objOps.writeObject(gr); // On créer l'objet
objOps.flush();
} catch (IOException e) {
e.printStackTrace();
} finally{
try{
if(objOps != null) objOps.close();
} catch (Exception ignored){
}
}
}
// Permet d'afficher les grilles stockées
public void display(String str, boolean check){
InputStream fileIs;
ObjectInputStream objIs = null;
try {
fileIs = new FileInputStream(str);
objIs = new ObjectInputStream(fileIs);
GrilleT gr = (GrilleT) objIs.readObject();
gr.afficheTAB(); // On affiche le tableau
// On récupère les infomrations que nous donne l'utilisateur
Scanner sc = new Scanner(System.in);
System.out.println("Entrez X:");
String xa = sc.nextLine();
int x = 0;
try{
x = Integer.parseInt(xa); // On vérifie si le joueur a bien rentré une bonne valeur
}
catch (NumberFormatException ignored){
}
System.out.println("Entrez Y:");
String ya = sc.nextLine(); // On récupère la coordonnée Y
int y =0;
try{
y = Integer.parseInt(ya); // On vérifie si le joueur a bien rentré une bonne valeur
}
catch (NumberFormatException ignored){
}
while (true) {
if (x < 0 || y < 0 || x > 10 || y > 10) {
throw new IllegalArgumentException("Ces valeurs ne sont pas acceptees!"); // Tout est dit évite OUT of BONS
}
CaseGameT tmp = gr.getTabcase()[y][x];
tmp.checkCase(y, x, 0); // On check toutes les cases
tmp.updatetabV(); // On vérifie la gravité
tmp.updatetabH(); // On fait le décalage à gauche
gr.checkAnimal(); // On check les animaux
tmp.calculatePoint(); // On calcule les points
System.out.println("Vous avez " + tmp.getPointGame() + " Points dans la Partie en cours!");
if (tmp.countAnimal() == 0) { // On vérifie si la Partie est gagné
// Store data like play()
if(check){ // On check ca permet de voir si on stocke les points ou non check correspond à un niveau à sauvegarder
try {
System.out.println("Vous avez Gagné!");
File file = new File("terminal\\points.txt");
Scanner myReader = new Scanner(file);
int pointfile = 0; // On set la valeur pointfile à 0
while (myReader.hasNextLine()) {
String data = myReader.nextLine();
pointfile = Integer.parseInt(data); // On récupère son contenu et on l'assigne à pointfile
}
FileWriter writer = new FileWriter(file);
BufferedWriter WriteFileBuffer = new BufferedWriter(writer);
pointfile = pointfile + tmp.getPointGame();
WriteFileBuffer.write(Integer.toString(pointfile)); // On rajoute les points à pointfile
WriteFileBuffer.close();
writer.close();
myReader.close();
} catch (FileNotFoundException e) {
System.out.println("Vous n'avez pas de points!");
}
try {
File file = new File("terminal\\niveau.txt");
Scanner myReader = new Scanner(file);
int niveau = 0;
while (myReader.hasNextLine()) {
String data = myReader.nextLine();
niveau = Integer.parseInt(data); // On vérifie si le fichier contient bien un INT
}
System.out.println("Vous avez gagné!");
FileWriter writer = new FileWriter(file);
BufferedWriter WriteFileBuffer = new BufferedWriter(writer);
niveau = niveau + 1;
WriteFileBuffer.write(Integer.toString(niveau)); // On additionne les INT
WriteFileBuffer.close();
writer.close();
myReader.close();
} catch (FileNotFoundException e) {
System.out.println("Vous n'avez pas de niveau!");
}
StoreObjectT obj = new StoreObjectT();
System.out.println("GAGNE!");
obj.stored(gr); // On sauvegarde la DATA pour reprendre la PARTIE
}
gr.afficheTAB();
Main.principale();
}
if (tmp.isLost()) { // On vérifie si on a perdu
System.out.println("PERDU!");
gr.afficheTAB();
Main.principale();
}
gr.afficheTAB();
System.out.println("Entrez X:");
xa = sc.nextLine();
try{
x = Integer.parseInt(xa);
}
catch (NumberFormatException ignored){
}
System.out.println("Entrez Y:");
ya = sc.nextLine();
try{
y = Integer.parseInt(ya);
}
catch (NumberFormatException ignored){
}
}
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
if(objIs != null) objIs.close();
} catch (Exception ignored){
}
}
}
}