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; } }