import java.util.*; // for the Scanner public class TTT2 { public static void main(String[] args) { Scanner in=new Scanner(System.in); char[] board=new char[9]; char won='n'; int i, turn=0, move; initializeBoard(board); do{ print(board); move=getMove(board, 'X', in); board[move]='X'; won=winner(board, 'X'); turn++; if(turn==9) won='D'; else if(won=='n'){ print(board); move=getMove(board, 'O', in); board[move]='O'; won=winner(board, 'O'); turn++; } }while(won=='n'); print(board); output(won); } public static void initializeBoard(char[] board) { for(int i=0;i<9;i++) board[i]=' '; } public static void print(char[] board) { System.out.println("\n\n"); System.out.println(board[0]+"|"+board[1]+"|"+board[2]); System.out.println("-----"); System.out.println(board[3]+"|"+board[4]+"|"+board[5]); System.out.println("-----"); System.out.println(board[6]+"|"+board[7]+"|"+board[8]); System.out.println("\n\n"); } public static int getMove(char[] board, char player, Scanner in) { int temp; System.out.print(player + " please enter your move (0-8) "); temp=in.nextInt(); while(temp<0||temp>8||board[temp]!=' ') { if(temp<0||temp>8) System.out.print("Move is out of bounds, try again "); else System.out.print("That square is in use, try again "); temp=in.nextInt(); } return temp; } public static char winner(char[] board, char player) { char temp='n'; if((board[0]==board[1]&&board[1]==board[2]&&board[0]==player)|| (board[3]==board[4]&&board[4]==board[5]&&board[3]==player)|| (board[6]==board[7]&&board[7]==board[8]&&board[6]==player)|| (board[0]==board[3]&&board[3]==board[6]&&board[0]==player)|| (board[1]==board[4]&&board[4]==board[7]&&board[1]==player)|| (board[2]==board[5]&&board[5]==board[8]&&board[2]==player)|| (board[0]==board[4]&&board[4]==board[8]&&board[0]==player)|| (board[2]==board[4]&&board[4]==board[6]&&board[2]==player)) temp=player; return temp; } public static void output(char won) { if(won=='D') System.out.println("The game ends in a draw"); else System.out.println(won + " won the game"); } }