avancee rapport et debut save
This commit is contained in:
parent
a9f837eaeb
commit
cac52c7180
BIN
Avancee.odt
BIN
Avancee.odt
Binary file not shown.
@ -5,10 +5,11 @@ public class Banniere extends JPanel {
|
|||||||
private FrameJeu fenetre;
|
private FrameJeu fenetre;
|
||||||
private FrameMenu menu;
|
private FrameMenu menu;
|
||||||
// Définition du constructeur
|
// Définition du constructeur
|
||||||
public Banniere(int mines, FrameJeu fenetre, FrameMenu menu) {
|
public Banniere(int mines, FrameJeu fenetre, FrameMenu menu, Dimension grilleSize) {
|
||||||
super();
|
super();
|
||||||
this.fenetre=fenetre;
|
this.fenetre=fenetre;
|
||||||
this.menu=menu;
|
this.menu=menu;
|
||||||
|
this.setSize(grilleSize.width,grilleSize.height/8);
|
||||||
|
|
||||||
// On défini un style à la bannière
|
// On défini un style à la bannière
|
||||||
this.setBackground(new Color(0, 236, 96));
|
this.setBackground(new Color(0, 236, 96));
|
||||||
|
16
Case.java
16
Case.java
@ -123,6 +123,18 @@ public class Case extends JPanel {
|
|||||||
return this.grille.getEnJeu();
|
return this.grille.getEnJeu();
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO : Override toString() pour avoir 3 bits désignants l'état de la case
|
@Override
|
||||||
//
|
public String toString(){
|
||||||
|
int value=0;
|
||||||
|
if (this.minee){
|
||||||
|
value+=1;
|
||||||
|
}
|
||||||
|
if (this.reperee){
|
||||||
|
value+=2;
|
||||||
|
}
|
||||||
|
if (this.visible){
|
||||||
|
value+=4;
|
||||||
|
}
|
||||||
|
return Integer.toString(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
2599
DiagrammeDeClasses.mdj
Normal file
2599
DiagrammeDeClasses.mdj
Normal file
File diff suppressed because it is too large
Load Diff
14
Grille.java
14
Grille.java
@ -1,12 +1,14 @@
|
|||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class Grille extends JPanel{
|
public class Grille extends JPanel{
|
||||||
private Banniere banniere;
|
private Banniere banniere;
|
||||||
private Dimension grilleSize=new Dimension(0,0);
|
private Dimension grilleSize=new Dimension(0,0);
|
||||||
private Case[] plateau;
|
private Case[] plateau;
|
||||||
private int colonnes;
|
private int colonnes;
|
||||||
|
private int lignes;
|
||||||
private int taille;
|
private int taille;
|
||||||
private int mines;
|
private int mines;
|
||||||
private int minesLeft;
|
private int minesLeft;
|
||||||
@ -20,6 +22,7 @@ public class Grille extends JPanel{
|
|||||||
public Grille(int lignes, int colonnes, int mines, FrameJeu fenetre, FrameMenu menu){
|
public Grille(int lignes, int colonnes, int mines, FrameJeu fenetre, FrameMenu menu){
|
||||||
super();
|
super();
|
||||||
this.colonnes=colonnes;
|
this.colonnes=colonnes;
|
||||||
|
this.lignes=lignes;
|
||||||
this.taille=lignes*colonnes;
|
this.taille=lignes*colonnes;
|
||||||
this.mines=mines;
|
this.mines=mines;
|
||||||
this.minesLeft=mines;
|
this.minesLeft=mines;
|
||||||
@ -30,9 +33,8 @@ public class Grille extends JPanel{
|
|||||||
this.grilleSize = new Dimension(((screenSize.height*3/4)/lignes)*colonnes, screenSize.height*3/4 );
|
this.grilleSize = new Dimension(((screenSize.height*3/4)/lignes)*colonnes, screenSize.height*3/4 );
|
||||||
Dimension caseSize = new Dimension(this.grilleSize.height/lignes,this.grilleSize.height/lignes);
|
Dimension caseSize = new Dimension(this.grilleSize.height/lignes,this.grilleSize.height/lignes);
|
||||||
GridLayout damier = new GridLayout(lignes,colonnes);
|
GridLayout damier = new GridLayout(lignes,colonnes);
|
||||||
Banniere banniere = new Banniere(mines,this.fenetre, menu);
|
Banniere banniere = new Banniere(mines,this.fenetre, menu, grilleSize);
|
||||||
this.banniere=banniere;
|
this.banniere=banniere;
|
||||||
banniere.setSize(grilleSize.width,grilleSize.height/8);
|
|
||||||
this.setLayout(damier);
|
this.setLayout(damier);
|
||||||
this.setSize(grilleSize);
|
this.setSize(grilleSize);
|
||||||
|
|
||||||
@ -203,7 +205,13 @@ public class Grille extends JPanel{
|
|||||||
|
|
||||||
// Methode pour récupérer le plateau de jeu
|
// Methode pour récupérer le plateau de jeu
|
||||||
public Case[] getPlateau(){
|
public Case[] getPlateau(){
|
||||||
return this.plateau;
|
return Arrays.copyOf(this.plateau,this.taille);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Méthode pour récupérer le nombre de lignes
|
||||||
|
public Dimension getDimensionGrille(){
|
||||||
|
Dimension grilleSize= new Dimension(this.colonnes, this.lignes);
|
||||||
|
return grilleSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode pour rendre visibles les cases autour d'un 0
|
// Méthode pour rendre visibles les cases autour d'un 0
|
||||||
|
BIN
Rapport.odt
BIN
Rapport.odt
Binary file not shown.
70
SaveManager.java
Normal file
70
SaveManager.java
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
import java.awt.Dimension;
|
||||||
|
import java.io.*;
|
||||||
|
|
||||||
|
public class SaveManager {
|
||||||
|
|
||||||
|
public void save(Grille grille, String nomFichier) {
|
||||||
|
Dimension taille = grille.getDimensionGrille();
|
||||||
|
|
||||||
|
String metaData= (int) taille.getWidth()+"x"+ (int) taille.getHeight()+"\n";
|
||||||
|
try {
|
||||||
|
BufferedWriter fichier = new BufferedWriter(new FileWriter(nomFichier));
|
||||||
|
Case[] toSave = grille.getPlateau();
|
||||||
|
|
||||||
|
fichier.write(metaData);
|
||||||
|
|
||||||
|
for(Case c : toSave) {
|
||||||
|
fichier.write(c.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
fichier.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public SaveData load(String nomFichier) {
|
||||||
|
String toReturn="";
|
||||||
|
String ligne;
|
||||||
|
Dimension dimension=new Dimension(0,0);
|
||||||
|
SaveData toRet=new SaveData(null, null);
|
||||||
|
|
||||||
|
try {
|
||||||
|
BufferedReader fichier = new BufferedReader(new FileReader(nomFichier));
|
||||||
|
|
||||||
|
ligne=fichier.readLine();
|
||||||
|
String[] taille = ligne.split("x");
|
||||||
|
|
||||||
|
int largeur = Integer.parseInt(taille[0]);
|
||||||
|
int hauteur = Integer.parseInt(taille[1]);
|
||||||
|
|
||||||
|
dimension = new Dimension(largeur, hauteur);
|
||||||
|
|
||||||
|
while((ligne = fichier.readLine()) != null) {
|
||||||
|
toReturn += ligne;
|
||||||
|
}
|
||||||
|
|
||||||
|
fichier.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
toRet.cases=toReturn;
|
||||||
|
toRet.taille=dimension;
|
||||||
|
return toRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SaveData{
|
||||||
|
public Dimension taille;
|
||||||
|
public String cases;
|
||||||
|
|
||||||
|
public SaveData(Dimension taille, String cases) {
|
||||||
|
this.taille = taille;
|
||||||
|
this.cases = cases;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
return (int) taille.getWidth()+"x"+(int) taille.getHeight()+"\n"+cases;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
SaveTester.java
Normal file
9
SaveTester.java
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
public class SaveTester {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Grille grille = new Grille(10,10,10, null, null);
|
||||||
|
SaveManager saveManager = new SaveManager();
|
||||||
|
|
||||||
|
saveManager.save(grille, "test_sauvegarde.txt");
|
||||||
|
SaveManager.SaveData donnees = saveManager.load("test_sauvegarde.txt");
|
||||||
|
}
|
||||||
|
}
|
2
test_sauvegarde.txt
Normal file
2
test_sauvegarde.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
10x10
|
||||||
|
0010000000000000001000000000000001010000000000000010000000000100001000000000000000000001100000000100
|
Loading…
Reference in New Issue
Block a user