Files
Fondamentaux-TP1/TTT_java/Game.java

61 lines
1.8 KiB
Java
Raw Permalink Normal View History

2025-10-14 17:21:26 +02:00
import java.util.Scanner;
public class Game {
private Board board;
private Player human;
private Player ai= new AIPlayer('O');
private Scanner scanner;
public Game() {
board = new Board(); // ATTENTION IL FALLAIT INITIALISER LE BOARD!!!! sinon erreur exit code 1
human = new Player('X');
scanner = new Scanner(System.in);
}
public void start() {
System.out.println("Bienvenue dans Tic-Tac-Toe !");
board.printBoard();
while (true) {
humanTurn();
if (isGameOver(human)) break;
aiTurn();
if (isGameOver(ai)) break;
}
}
private void humanTurn() {
System.out.println("Votre tour ! Entrez la ligne et la colonne (ex: 2 2 pour le centre) :"); //ATTENTION !! LE MILIEU C'EST 2 2 PAS 1 1 !!
int row, col;
while (true) {
row = scanner.nextInt() - 1;
col = scanner.nextInt() - 1;
if (board.isCellEmpty(row, col)) {
board.placeMark(row, col, human.getMark());
board.printBoard();
break;
} else {
System.out.println("Cette case est déjà prise. Essayez à nouveau.");
}
}
}
private void aiTurn() {
System.out.println("Tour de l'IA...");
((AIPlayer) ai).makeMove(board);
board.printBoard();
}
private boolean isGameOver(Player player) {
if (board.hasWon(player.getMark())) {
System.out.println("Le joueur " + player.getMark() + " a gagné !"); //PRENDRE LA MARK DU PLAYER!!! SINON AFFICHE TOUJOURS VICTOIRE IA!!
return true;
} else if (board.isFull()) {
System.out.println("Égalité ! La grille est pleine.");
return true;
}
return false;
}
}