Ajout de la Grille

This commit is contained in:
Lyanis SOUIDI 2023-04-11 09:45:48 +02:00
parent 0a0e0342d7
commit c8f37a583a
Signed by: Lyanis SOUIDI
GPG Key ID: 251ADD56CFE6A854
4 changed files with 119 additions and 0 deletions

43
src/Grid.java Normal file
View File

@ -0,0 +1,43 @@
import java.util.Arrays;
public class Grid {
private Square[][] grid;
public Grid(int taille) {
this.grid = new Square[taille][taille];
for (int i = 0; i < taille; i++) {
for (int j = 0; j < taille; j++) {
this.grid[i][j] = new Square(i, j);
}
}
}
public void setWall(int x, int y) throws ArrayIndexOutOfBoundsException {
this.grid[x][y].setWall();
}
public void setExit(int x, int y) throws ArrayIndexOutOfBoundsException {
for (Square[] line : this.grid) {
for (Square square : line) {
if (square.isExit()) square.setEmpty();
}
}
this.grid[x][y].setExit();
}
public int getRows() {
return this.grid.length;
}
public int getColumns() {
return this.grid[0].length;
}
public boolean isWall(int x, int y) {
return this.grid[x][y].isWall();
}
public boolean isExit(int x, int y) {
return this.grid[x][y].isEmpty();
}
}

29
src/GridController.java Normal file
View File

@ -0,0 +1,29 @@
public class GridController {
private Grid model;
private GridView view;
public GridController(Grid model, GridView view) {
this.model = model;
this.view = view;
}
public void setGridExit(int x, int y) {
this.model.setExit(x, y);
}
public void setGridWall(int x, int y) {
this.model.setWall(x, y);
}
public boolean isGridWall(int x, int y) {
return this.model.isWall(x, y);
}
public boolean isGridExit(int x, int y) {
return this.model.isExit(x, y);
}
public void updateView() {
this.view.printGridInfo(this.model.getRows(), this.model.getColumns());
}
}

5
src/GridView.java Normal file
View File

@ -0,0 +1,5 @@
public class GridView {
public void printGridInfo(int rows, int columns) {
System.out.println("Grid size: " + rows + "x" + columns);
}
}

42
src/Square.java Normal file
View File

@ -0,0 +1,42 @@
public class Square {
private final int row;
private final int column;
private int type = 0;
public Square(int row, int column) {
this.row = row;
this.column = column;
}
public int getRow() {
return this.row;
}
public int getColumn() {
return this.column;
}
public boolean isWall() {
return this.type == 1;
}
public boolean isExit() {
return this.type == 2;
}
public boolean isEmpty() {
return this.type == 0;
}
public void setWall() {
this.type = 1;
}
public void setExit() {
this.type = 2;
}
public void setEmpty() {
this.type = 0;
}
}