tp1 partie 1 et partie 2.1/2.2
This commit is contained in:
60
TTT_java/Game.java
Normal file
60
TTT_java/Game.java
Normal file
@@ -0,0 +1,60 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user