Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tictactoe;
- import java.util.*;
- class TicTacToe
- {
- char ttt[][] = new char[3][3];
- static final char player1 = 'O';
- static final char player2 = 'X';
- Scanner scan =new Scanner(System.in);
- int moves = 0;
- char turn = 'X';
- String playerID(char player)
- {
- if (player == player1)
- return "player1: "+player;
- else
- return "player2: "+ player;
- }
- void getPlayerInput(char player)
- {
- while (moves < 9) {
- boolean validInput = false;
- while(!validInput){
- System.out.print("Enter row (0-2): ");
- int row = s.nextInt();
- System.out.print("Enter column (0-2): ");
- int column = s.nextInt();
- if(row>=0 && row<=2 && column>=0 && column<=2){
- if(board[row][column]=='_'){
- board[row][column] = turn;
- validInput = true;
- }
- else{
- System.out.println("Position already filled, enter again");
- }
- }
- else{
- System.out.println("Invalid Position, enter again");
- }
- }
- }
- System.out.println("Current board: "+ ttt[row][col]=player);
- boolean gameIsDraw()
- {
- if(turn=='X')
- turn = 'O';
- else if(turn=='O')
- turn = 'X';
- moves++;
- }
- if (moves == 9) System.out.println("Tie game.");
- }
- boolean winner(char player)
- {
- boolean win = false;
- for (int i = 0; i < 3; i++) {
- if (board[i][0] == board[i][1] &&
- board[i][1] == board[i][2] &&
- board[i][0] == turn) win = true;
- if (board[0][i] == board[1][i] &&
- board[1][i] == board[2][i] &&
- board[0][i] == turn) win = true;
- }
- if(board[0][0]==board[1][1] &&
- board[1][1]==board[2][2] &&
- board[2][2]== turn) win = true;
- if(board[0][2]==board[1][1] &&
- board[1][1]==board[2][0] &&
- board[2][0]== turn) win = true;
- if (win) {
- System.out.println(turn + " wins!");
- break;
- }
- }
- void displayBoard()
- {
- System.out.println("********************************");
- System.out.println(" ---a------b------c---");
- for (int i=0; i<3; i++)
- {
- for (int j=0; j< 3; j++)
- {
- if (j == 0) System.out.print(" | ");
- System.out.print(ttt[i][j]);
- if (j < 2) System.out.print( " | ");
- if (j==2) System.out.print(" |");
- }
- System.out.println();
- switch (i)
- {
- case 0:
- System.out.println(" ---d------e------f---");
- break;
- case 1:
- System.out.println(" ---g------h------i---");
- break;
- case 2:
- System.out.println(" ---------------------");
- break;
- }
- }
- }
- void newgame()
- {
- char currPlayer = player1;
- for(int i=0; i<3; i++)
- for(int j=0; j<3; j++)
- ttt[i][j] =' ';
- boolean continueFlag = true;
- while (continueFlag)
- {
- displayBoard();
- if (gameIsDraw())
- {
- System.out.println("Game Ends in Draw");
- continueFlag = false;
- }
- else
- {
- getPlayerInput(currPlayer);
- if (winner(currPlayer))
- {
- System.out.println("We have a winner: " +
- playerID(currPlayer));
- displayBoard();
- continueFlag = false;
- }
- else
- {
- if (currPlayer == player1) currPlayer = player2;
- else currPlayer = player1;
- }
- }
- }
- }
- public static void main(String[] args)
- {
- TicTacToe game = new TicTacToe();
- String str;
- do
- {
- game.newgame();
- System.out.println("Do you want to play Tic-Tac-Toe (y/n)?");
- str= game.scan.next();
- } while ("y".equals(str));
- System.out.println("Bye");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement