Files
Tic-Tac-Toe/Tic-Tac-Toe/src/main/TicTacToe.java
2020-09-06 13:57:14 +02:00

77 lines
1.5 KiB
Java

package main;
public class TicTacToe {
Board board;
Player player1, player2;
Player turn;
private boolean running;
public static final int MODE_NORMAL = 0;
public static final int MODE_AI = 1;
public TicTacToe(int mode) {
board = new Board();
switch (mode) {
case MODE_NORMAL:
player1 = new Player(Options.player1Symbol);
player2 = new Player(Options.player2Symbol);
break;
case MODE_AI:
player1 = new Player(Options.player1Symbol);
player2 = new PlayerAI(Options.player2Symbol);
break;
}
turn = player1;
running = true;
while (running) {
loop();
}
}
public void loop() {
board.draw();
turn.printTurnMessage();
if (turn instanceof PlayerAI) {
if (!((PlayerAI) turn).calculateNextMove(board.getBoard())) {
System.exit(0);
}
}
int field = turn.makeTurn();
while (!board.isFieldFree(field)) {
board.draw();
System.out.println("Das Feld ist schon belegt!");
field = turn.makeTurn();
}
board.place(field, turn.getSymbol());
char winner = board.testWinner();
if (winner > 1) {
Cmd.cls();
board.draw();
System.out.println(winner + " hat gewonnen!");
} else if (winner == 1) {
Cmd.cls();
board.draw();
System.out.println("Unetschieden!");
}
if (winner != 0) {
System.out.println("Noch eine Runde? [y/n]");
if (Input.yesNoDialog()) {
board.clear();
} else {
running = false;
}
}
if (turn.equals(player1)) {
turn = player2;
} else {
turn = player1;
}
Cmd.cls();
}
}