ajout victoire
This commit is contained in:
parent
bd8d725cd1
commit
e9916196dc
@ -52,6 +52,7 @@ public class Case extends JPanel {
|
|||||||
if (this.getEntourage() == 0) {
|
if (this.getEntourage() == 0) {
|
||||||
this.grille.setEntourageVisible(this);
|
this.grille.setEntourageVisible(this);
|
||||||
}
|
}
|
||||||
|
this.grille.verifVictoire();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,6 +91,7 @@ public class Case extends JPanel {
|
|||||||
this.reperee=reperee;
|
this.reperee=reperee;
|
||||||
if ((reperee)&&(minee)){
|
if ((reperee)&&(minee)){
|
||||||
this.deminee=true;
|
this.deminee=true;
|
||||||
|
this.grille.verifVictoire();
|
||||||
}
|
}
|
||||||
this.grille.MinesLeft();
|
this.grille.MinesLeft();
|
||||||
}
|
}
|
||||||
|
@ -10,12 +10,13 @@ public class EtatPartie extends JPanel {
|
|||||||
this.setBackground( new Color(0, 236, 96));
|
this.setBackground( new Color(0, 236, 96));
|
||||||
|
|
||||||
this.setSize(200,100);
|
this.setSize(200,100);
|
||||||
|
// On ajoute le compteur de mines restantes
|
||||||
setMinesLeft(mines);
|
setMinesLeft(mines);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode pour afficher le nombre de mines restantes
|
// Méthode pour afficher le nombre de mines restantes
|
||||||
protected void setMinesLeft(int minesLeft){
|
public void setMinesLeft(int minesLeft){
|
||||||
this.removeAll();
|
this.removeAll();
|
||||||
this.add(new MineLeft(minesLeft,this.getSize()));
|
this.add(new MineLeft(minesLeft,this.getSize()));
|
||||||
//System.out.println("Mines restantes : "+minesLeft);
|
//System.out.println("Mines restantes : "+minesLeft);
|
||||||
|
5
FrameVictoire.java
Normal file
5
FrameVictoire.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
public class FrameVictoire {
|
||||||
|
public FrameVictoire(){
|
||||||
|
System.out.println("Victoire!");
|
||||||
|
}
|
||||||
|
}
|
34
Grille.java
34
Grille.java
@ -62,7 +62,7 @@ public class Grille extends JPanel {
|
|||||||
int entourage = 0;
|
int entourage = 0;
|
||||||
// On vérifie pour chaque case qu'elle n'est pas déjà à l'extrémité du plateau où on cherche une case
|
// On vérifie pour chaque case qu'elle n'est pas déjà à l'extrémité du plateau où on cherche une case
|
||||||
// Mine au dessus à droite
|
// Mine au dessus à droite
|
||||||
if ((i>colonnes)&&(i%colonnes!=colonnes-1)){
|
if ((i>=colonnes)&&(i%colonnes!=colonnes-1)){
|
||||||
for (int j=0;j<mines;j++){
|
for (int j=0;j<mines;j++){
|
||||||
if (caseMine[j]==i-colonnes+1){
|
if (caseMine[j]==i-colonnes+1){
|
||||||
entourage+=1;
|
entourage+=1;
|
||||||
@ -70,7 +70,7 @@ public class Grille extends JPanel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Mine au dessus à gauche
|
// Mine au dessus à gauche
|
||||||
if ((i>colonnes)&&(i%colonnes!=0)){
|
if ((i>=colonnes)&&(i%colonnes!=0)){
|
||||||
for (int j=0;j<mines;j++){
|
for (int j=0;j<mines;j++){
|
||||||
if (caseMine[j]==i-colonnes-1){
|
if (caseMine[j]==i-colonnes-1){
|
||||||
entourage+=1;
|
entourage+=1;
|
||||||
@ -78,7 +78,7 @@ public class Grille extends JPanel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Mine en dessous à droite
|
// Mine en dessous à droite
|
||||||
if ((i<=taille-colonnes)&&(i%colonnes!=colonnes-1)){
|
if ((i<taille-colonnes)&&(i%colonnes!=colonnes-1)){
|
||||||
for (int j=0;j<mines;j++){
|
for (int j=0;j<mines;j++){
|
||||||
if (caseMine[j]==i+colonnes+1){
|
if (caseMine[j]==i+colonnes+1){
|
||||||
entourage+=1;
|
entourage+=1;
|
||||||
@ -86,7 +86,7 @@ public class Grille extends JPanel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Mine en bas à gauche
|
// Mine en bas à gauche
|
||||||
if ((i<=taille-colonnes)&&(i%colonnes!=0)){
|
if ((i<taille-colonnes)&&(i%colonnes!=0)){
|
||||||
for (int j=0;j<mines;j++){
|
for (int j=0;j<mines;j++){
|
||||||
if (caseMine[j]==i+colonnes-1){
|
if (caseMine[j]==i+colonnes-1){
|
||||||
entourage+=1;
|
entourage+=1;
|
||||||
@ -94,7 +94,7 @@ public class Grille extends JPanel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Mine au dessus
|
// Mine au dessus
|
||||||
if (i>colonnes){
|
if (i>=colonnes){
|
||||||
for (int j=0;j<mines;j++){
|
for (int j=0;j<mines;j++){
|
||||||
if (caseMine[j]==i-colonnes){
|
if (caseMine[j]==i-colonnes){
|
||||||
entourage+=1;
|
entourage+=1;
|
||||||
@ -102,7 +102,7 @@ public class Grille extends JPanel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Mine en dessous
|
// Mine en dessous
|
||||||
if (i<=taille-colonnes){
|
if (i<taille-colonnes){
|
||||||
for (int j=0;j<mines;j++){
|
for (int j=0;j<mines;j++){
|
||||||
if (caseMine[j]==i+colonnes){
|
if (caseMine[j]==i+colonnes){
|
||||||
entourage+=1;
|
entourage+=1;
|
||||||
@ -156,8 +156,7 @@ public class Grille extends JPanel {
|
|||||||
// Méthode pour déterminer le nombre de mines restantes
|
// Méthode pour déterminer le nombre de mines restantes
|
||||||
public void MinesLeft(){
|
public void MinesLeft(){
|
||||||
this.minesLeft=this.mines;
|
this.minesLeft=this.mines;
|
||||||
for (int i=0;i<taille;i++){
|
for (int i=0;i<this.taille;i++){
|
||||||
//System.out.println("case repéree ? == "+plateau[i].getReperee());
|
|
||||||
if(plateau[i].getReperee()==true){
|
if(plateau[i].getReperee()==true){
|
||||||
this.minesLeft-=1;
|
this.minesLeft-=1;
|
||||||
}
|
}
|
||||||
@ -165,18 +164,31 @@ public class Grille extends JPanel {
|
|||||||
this.banniere.setMinesLeft(this.minesLeft);
|
this.banniere.setMinesLeft(this.minesLeft);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Méthode déterminant les conditions de victoire
|
||||||
|
public void verifVictoire(){
|
||||||
|
int casesDeminees=0;
|
||||||
|
for (int i=0;i<this.taille;i++){
|
||||||
|
if(plateau[i].getDeminee()==true){
|
||||||
|
casesDeminees+=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (taille==casesDeminees){
|
||||||
|
new FrameVictoire();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Méthode pour rendre visibles les cases autour d'un 0
|
// Méthode pour rendre visibles les cases autour d'un 0
|
||||||
public void setEntourageVisible(Case panel){
|
public void setEntourageVisible(Case panel){
|
||||||
for(int i=0; i<this.taille;i++){
|
for(int i=0; i<this.taille;i++){
|
||||||
if (plateau[i]==panel){
|
if (plateau[i]==panel){
|
||||||
// Mine au dessus à droite
|
// Mine au dessus à droite
|
||||||
if ((i>colonnes)&&(i%colonnes!=colonnes-1)){
|
if ((i>=colonnes)&&(i%colonnes!=colonnes-1)){
|
||||||
for (int j=0;j<mines;j++){
|
for (int j=0;j<mines;j++){
|
||||||
plateau[i-colonnes+1].setVisible();
|
plateau[i-colonnes+1].setVisible();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Mine au dessus à gauche
|
// Mine au dessus à gauche
|
||||||
if ((i>colonnes)&&(i%colonnes!=0)){
|
if ((i>=colonnes)&&(i%colonnes!=0)){
|
||||||
for (int j=0;j<mines;j++){
|
for (int j=0;j<mines;j++){
|
||||||
plateau[i-colonnes-1].setVisible();
|
plateau[i-colonnes-1].setVisible();
|
||||||
}
|
}
|
||||||
@ -194,7 +206,7 @@ public class Grille extends JPanel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Mine au dessus
|
// Mine au dessus
|
||||||
if (i>colonnes){
|
if (i>=colonnes){
|
||||||
for (int j=0;j<mines;j++){
|
for (int j=0;j<mines;j++){
|
||||||
plateau[i-colonnes].setVisible();
|
plateau[i-colonnes].setVisible();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
public class Test {
|
public class Test {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
new FrameJeu(15,20,10);
|
new FrameJeu(15,20,5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Flux de sortie représenté par la classe Output Stream
|
||||||
|
* Méthodes cruciales : void write(int);
|
||||||
|
* void flush();
|
||||||
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user