// Console TicTacToe game import java.util.Scanner; public class TicTacToe { public int gridsize = 3; private char dotchar = '.'; private char [][] grid; public Scanner sc = new Scanner(System.in); public TicTacToe() { grid = new char[gridsize][gridsize]; for(int i = 0; i < grid.length; i++){ for(int j = 0; j < grid.length; j++){ grid[i][j] = dotchar; } } } public char [][] getGrid(){ return grid; } public void display(){ for(int i = 0; i < grid.length; i++){ for(int j = 0; j < grid.length; j++){ System.out.print(grid[i][j]); } System.out.println(""); } System.out.println(""); } public void setX(int index){ if (index < 0) { while (!isAvailable((index - 1))) { System.out.println("Player X ... enter 1 to 9 as your go reading top to bottom, left to right"); index = sc.nextInt(); } } index = index - 1; int k = 0; for(int i = 0; i < grid.length; i++){ for(int j = 0; j < grid.length; j++){ if(k == index){ grid[i][j] = 'X'; } k++; } } } public void setO(int index){ if (index < 0) { while (!isAvailable((index - 1))) { System.out.println("Player O ... enter 1 to 9 as your go reading top to bottom, left to right"); index = sc.nextInt(); } } index = index - 1; int k = 0; for(int i = 0; i < grid.length; i++){ for(int j = 0; j < grid.length; j++){ if(k == index){ grid[i][j] = 'O'; } k++; } } } public boolean isAvailable(int index){ boolean available = false; int k = 0; for(int i = 0; i < grid.length; i++){ for(int j = 0; j < grid.length; j++){ if(k == index){ if (grid[i][j] == dotchar) available = true; } k++; } } return available; } public int anyAvailable(){ int anyavailable = 0; for(int i = 0; i < grid.length; i++){ for(int j = 0; j < grid.length; j++){ if (grid[i][j] == dotchar) anyavailable = 1; } } if (grid[0][0] == 'O' && grid[0][1] == 'O' && grid[0][2] == 'O') anyavailable = 2; else if (grid[1][0] == 'O' && grid[1][1] == 'O' && grid[1][2] == 'O') anyavailable = 2; else if (grid[2][0] == 'O' && grid[2][1] == 'O' && grid[2][2] == 'O') anyavailable = 2; else if (grid[0][0] == 'X' && grid[0][1] == 'X' && grid[0][2] == 'X') anyavailable = 3; else if (grid[1][0] == 'X' && grid[1][1] == 'X' && grid[1][2] == 'X') anyavailable = 3; else if (grid[2][0] == 'X' && grid[2][1] == 'X' && grid[2][2] == 'X') anyavailable = 3; else if (grid[0][0] == 'O' && grid[1][1] == 'O' && grid[2][2] == 'O') anyavailable = 2; else if (grid[2][0] == 'O' && grid[1][1] == 'O' && grid[0][2] == 'O') anyavailable = 2; else if (grid[0][0] == 'X' && grid[1][1] == 'X' && grid[2][2] == 'X') anyavailable = 3; else if (grid[2][0] == 'X' && grid[1][1] == 'X' && grid[0][2] == 'X') anyavailable = 3; return anyavailable; } public static void main(String[] args) { TicTacToe tt = new TicTacToe(); int gois = 0; while (tt.anyAvailable() == 1) { tt.display(); if (gois == 0) { tt.setO(-1); } else { tt.setX(-1); } gois = 1 - gois; } if (tt.anyAvailable() == 2) { tt.display(); System.out.println("Congratulations, Player O"); } else if (tt.anyAvailable() == 3) { tt.display(); System.out.println("Congratulations, Player X"); } else { tt.display(); System.out.println("Good draw"); } } }