123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
-
- PlayField field = new PlayField();
- int nextPos;
- boolean won;
- Scanner myScanner = new Scanner(System.in);
-
- do {
-
- System.out.println("Where do you want to set your 'x'? (1-9)");
-
- do {
- //Check input
- if(!myScanner.hasNextInt()) {
- System.out.println("Invalid input. Try again.");
- myScanner.nextLine();
- continue;
- }
- nextPos = myScanner.nextInt();
- if(nextPos < 1 || nextPos > 9) {
- System.out.println("Invalid int. 1 to 9 expected.");
- myScanner.nextLine();
- continue;
- }
- if(field.getPos(nextPos) != 0) {
- System.out.println("Position not free.");
- myScanner.nextLine();
- continue;
- }
-
- //Player's turn
- won = field.updatePos(nextPos, 1);
- if(won) {
- printWinner(1);
- if(!askPlayAgain(myScanner)) {
- myScanner.close();
- System.exit(0);
- }
- field.resetField();
- break;
-
- }
- if(field.isDraw()) {
- System.out.println("Draw.");
- if(!askPlayAgain(myScanner)) {
- System.out.println("Game closed.");
- myScanner.close();
- System.exit(0);
- }
- field.resetField();
- break;
- }
-
- //Opponent's turn
- System.out.println("Opponents turn:");
- won = field.oppMove();
- if(won) {
- printWinner(2);
- if(!askPlayAgain(myScanner)) {
- System.out.println("Game closed.");
- myScanner.close();
- System.exit(0);
- }
- field.resetField();
- break;
-
- }
- if(field.isDraw()) {
- System.out.println("Draw.");
- if(!askPlayAgain(myScanner)) {
- System.out.println("Game closed.");
- myScanner.close();
- System.exit(0);
- }
- field.resetField();
- break;
- }
-
- break;
-
- } while(true);
- } while (true);
-
- }
-
- public static void printWinner(int player) {
- if(player == 1) {
- System.out.println("Player 'x' has won.");
- } else {
- System.out.println("Player 'o' has won.");
- }
- }
-
- private static boolean askPlayAgain(Scanner in) {
- String again;
- System.out.println("New game? Y/N");
- do {
- again = in.next();
- if(again.equals("Y")) {
- return true;
- } else if(again.equals("N")) {
- return false;
- } else {
- System.out.println("Invalid input. Try again.");
- }
- } while(true);
- }
-
- }
|