Commit 355e216c authored by Patrick Lafrance's avatar Patrick Lafrance

Renommé Case en Cellule

parent c47d170a
......@@ -7,7 +7,7 @@ enum Type{
BOMBE;
public String toString() {
switch(name()) {
switch( name() ) {
case "VIDE" : return " ";
case "BOMBE" : return "<>";
}
......@@ -21,7 +21,7 @@ enum Marque{
INCONNUE;
public String toString() {
switch(name()) {
switch( name() ) {
case "VIDE" : return "▒▒";
case "BOMBE" : return "|>";
case "INCONNUE" : return "? ";
......@@ -30,19 +30,19 @@ enum Marque{
}
}
class Case implements Serializable{
class Cellule implements Serializable{
Type type;
Marque marque;
boolean cachée;
public Case(Type unType) {
public Cellule( Type unType ) {
type=unType;
cachée=true;
marque=Marque.VIDE;
}
public Case() {
this(Type.VIDE);
public Cellule() {
this( Type.VIDE );
}
public void découvrir() {
......@@ -50,7 +50,7 @@ class Case implements Serializable{
}
public void marquer() {
if(marque==Marque.VIDE) {
if( marque==Marque.VIDE ) {
marque=Marque.BOMBE;
}
else if ( marque == Marque.BOMBE ){
......
package dti.g04.démineur;
public class Coup{
public int _x;
public int _y;
public char _action;
public Coup(char action, int x, int y){
_action=action;
_x=x;
_y=y;
}
public int getX() {
return _x;
}
public int getY() {
return _y;
}
public char getAction() {
return _action;
}
}
......@@ -8,7 +8,7 @@ public class Démineur {
public int y;
public char action;
public Coup(char _action, int _x, int _y){
public Coup( char _action, int _x, int _y ){
action=_action;
x=_x;
y=_y;
......@@ -16,62 +16,62 @@ public class Démineur {
}
static Coup getProchainCoup(){
Scanner scan=new Scanner(System.in);
Scanner scan=new Scanner( System.in );
System.out.print("Prochain mouvement (A X Y): ");
String coup[]=scan.nextLine().split(" ");
char action=coup[0].toLowerCase().charAt(0);
System.out.print( "Prochain mouvement ( A X Y ): " );
String coup[]=scan.nextLine().split( " " );
char action=coup[0].toLowerCase().charAt( 0 );
int x=0;
int y=0;
if(coup.length>=3){
x=Integer.parseInt(coup[1]);
y=Integer.parseInt(coup[2]);
if( coup.length>=3 ){
x=Integer.parseInt( coup[1] );
y=Integer.parseInt( coup[2] );
}
return new Coup(action,x,y);
return new Coup( action,x,y );
}
public static void main(String args[])
public static void main( String args[] )
{
Démineur démineur = new Démineur();
Scanner scan=new Scanner(System.in);
Scanner scan=new Scanner( System.in );
System.out.print("Choisissez la taille de la grille (Largeur Hauteur): ");
System.out.print( "Choisissez la taille de la grille ( Largeur Hauteur ): " );
Grille g=new Grille(scan.nextInt(), scan.nextInt());
System.out.println(g);
Grille g=new Grille( scan.nextInt(), scan.nextInt() );
System.out.println( g );
Coup coup=getProchainCoup();
g.placerBombes( coup.x, coup.y, 10 );
g.découvrirCase(coup.x,coup.y);
System.out.println(g);
g.découvrirCellule( coup.x,coup.y );
System.out.println( g );
boolean fin=false;
while(!fin){
while( !fin ){
coup=getProchainCoup();
switch(coup.action){
switch( coup.action ){
case 'm':
g.marquerCase(coup.x, coup.y);
g.marquerCellule( coup.x, coup.y );
break;
case 'd':
Type type=g.découvrirCase(coup.x, coup.y);
if(type==Type.BOMBE){
System.out.println("BOUM!!!");
Type type=g.découvrirCellule( coup.x, coup.y );
if( type==Type.BOMBE ){
System.out.println( "BOUM!!!" );
g.révélerTout();
fin=true;
}
break;
}
if(g.estRéussi()){
System.out.println("Bravo!");
if( g.estRéussi() ){
System.out.println( "Bravo!" );
fin=true;
g.révélerTout();
}
System.out.println(g);
System.out.println( g );
}
}
......
......@@ -7,16 +7,16 @@ class Grille implements Serializable{
int largeur;
int hauteur;
Case[][] cases;
Cellule[][] cellules;
public Grille( int uneLargeur, int uneHauteur ) {
largeur=uneLargeur;
hauteur=uneHauteur;
cases=new Case[largeur][hauteur];
cellules=new Cellule[largeur][hauteur];
for ( int i=0;i<largeur;i++ ) {
for ( int j=0;j<hauteur;j++ ) {
cases[i][j]=new Case( Type.VIDE );
cellules[i][j]=new Cellule( Type.VIDE );
}
}
}
......@@ -25,8 +25,8 @@ class Grille implements Serializable{
this( 10, 10 );
}
private String getReprésentationCase( int x, int y ) {
String représentation = cases[x][y].toString();
private String getReprésentationCellule( int x, int y ) {
String représentation = cellules[x][y].toString();
if ( représentation == " " ) {
int nbVoisins=compterVoisins( x, y );
......@@ -41,7 +41,7 @@ class Grille implements Serializable{
for ( int i=x-1;i<x+2;i++ )
for ( int j=y-1;j<y+2;j++ )
if ( i>=0 && j>=0 && i<largeur && j<hauteur && cases[i][j].getType()==Type.BOMBE ) cpt+=1;
if ( i>=0 && j>=0 && i<largeur && j<hauteur && cellules[i][j].getType()==Type.BOMBE ) cpt+=1;
return cpt;
......@@ -59,7 +59,7 @@ class Grille implements Serializable{
res+="══╗\n 0";
for ( int j=0;j<hauteur;j++ ) {
for ( int i=0;i<largeur;i++ ) {
res+="║" + getReprésentationCase( i, j );
res+="║" + getReprésentationCellule( i, j );
}
res+="║";
if ( j==hauteur-1 ) break;
......@@ -69,7 +69,7 @@ class Grille implements Serializable{
for ( int i=0;i<largeur-1;i++ ) {
res+="══╬";
}
res+="══╣\n" +( j<9?" "+(j+1):(j+1) );
res+="══╣\n" +( j<9?" "+( j+1 ):( j+1 ) );
}
res+="\n ╚";
......@@ -90,11 +90,11 @@ class Grille implements Serializable{
int positionX = rand.nextInt( largeur );
int positionY = rand.nextInt( hauteur );
//Place un bombe sur n'importe quelle case vide sauf autour de la case découverte
//Place un bombe sur n'importe quelle cellule vide sauf autour de la cellule découverte
if ( ( positionX < premierCoupX-1 || positionX > premierCoupX+1 ) &&
( positionY < premierCoupY-1 || positionY > premierCoupY+1 ) &&
cases[positionX][positionY].getType() == Type.VIDE ) {
cases[positionX][positionY] = new Case( Type.BOMBE );
cellules[positionX][positionY].getType() == Type.VIDE ) {
cellules[positionX][positionY] = new Cellule( Type.BOMBE );
bombesPosées++;
}
}
......@@ -109,34 +109,34 @@ class Grille implements Serializable{
return hauteur;
}
public Case getCase( int x, int y ) {
return cases[x][y];
public Cellule getCellule( int x, int y ) {
return cellules[x][y];
}
public Type découvrirCase( int x, int y ) {
cases[x][y].découvrir();
if ( compterVoisins(x, y)==0 ) {
public Type découvrirCellule( int x, int y ) {
cellules[x][y].découvrir();
if ( compterVoisins( x, y )==0 ) {
for ( int i=x-1;i<x+2;i++ )
for ( int j=y-1;j<y+2;j++ )
if ( i>=0 && i<largeur &&
j>=0 && j<hauteur &&
cases[i][j].estCachée() &&
cases[i][j].getType()!=Type.BOMBE) {
découvrirCase( i, j );
cellules[i][j].estCachée() &&
cellules[i][j].getType()!=Type.BOMBE ) {
découvrirCellule( i, j );
}
}
return cases[x][y].getType();
return cellules[x][y].getType();
}
public void marquerCase( int x, int y ) {
cases[x][y].marquer();
public void marquerCellule( int x, int y ) {
cellules[x][y].marquer();
}
public void révélerTout() {
for ( int i=0;i<largeur;i++ ) {
for ( int j=0;j<hauteur;j++ ) {
cases[i][j].cachée=false;
cellules[i][j].cachée=false;
}
}
}
......@@ -144,7 +144,7 @@ class Grille implements Serializable{
public boolean estRéussi() {
for ( int i=0;i<largeur;i++ ) {
for ( int j=0;j<hauteur;j++ ) {
if ( cases[i][j].estCachée() && cases[i][j].getType()!=Type.BOMBE ) {
if ( cellules[i][j].estCachée() && cellules[i][j].getType()!=Type.BOMBE ) {
return false;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment