65 lines
1.7 KiB
Java
65 lines
1.7 KiB
Java
|
|
public class Board {
|
||
|
|
private char[][] grid;
|
||
|
|
private static final int SIZE = 3;
|
||
|
|
|
||
|
|
public Board() {
|
||
|
|
grid = new char[SIZE][SIZE];
|
||
|
|
for (int i = 0; i < SIZE; i++) {
|
||
|
|
for (int j = 0; j < SIZE; j++) {
|
||
|
|
grid[i][j] = '-';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public void printBoard() {
|
||
|
|
for (int i = 0; i < SIZE; i++) {
|
||
|
|
for (int j = 0; j < SIZE; j++) { //IL FAUT METTRE I ET J INFERIEUR!!! SINON PAS D'AFFICHAGE!!!
|
||
|
|
System.out.print(grid[i][j] + " ");
|
||
|
|
}
|
||
|
|
System.out.println();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public boolean isCellEmpty(int row, int col) {
|
||
|
|
return grid[row][col] == '-';
|
||
|
|
}
|
||
|
|
|
||
|
|
public void placeMark(int row, int col, char mark) {
|
||
|
|
grid[row][col] = mark;
|
||
|
|
}
|
||
|
|
|
||
|
|
public boolean hasWon(char mark) {
|
||
|
|
// Vérifie les lignes
|
||
|
|
for (int i = 0; i < SIZE; i++) {
|
||
|
|
if (grid[i][0] == mark && grid[i][1] == mark && grid[i][2] == mark) {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
// Vérifie les colonnes
|
||
|
|
for (int j = 0; j < SIZE; j++) {
|
||
|
|
if (grid[0][j] == mark && grid[1][j] == mark && grid[2][j] == mark) {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
// Vérifie les diagonales
|
||
|
|
if (grid[0][0] == mark && grid[1][1] == mark && grid[2][2] == mark) {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
if (grid[0][2] == mark && grid[1][1] == mark && grid[2][0] == mark) {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
public boolean isFull() {
|
||
|
|
for (int i = 0; i < SIZE; i++) {
|
||
|
|
for (int j = 0; j < SIZE; j++) {
|
||
|
|
if (grid[i][j] == '-') {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
}
|