arrays - Java Tic Tac Toe Game Confirming Winner -


below code tic tac toe game. there 2 problems running into. one, not sure how return player has won (x or o), can return if there winner. well, when try run program can out of bounds error. did go wrong?

i have 2 files, 1 being tictactoe , other tttboard.

tictaetoe.java

import java.util.scanner; import java.util.random;  public class tictactoe {     public static void main(string[]args){         scanner reader = new scanner(system.in);         tttboard board = new tttboard();          system.out.println(board);          random gen = new random();         char player;         if(gen.nextint(2)==1)             player = 'o';         else             player = 'x';         while(!board.checkwinner() && !board.full()){              system.out.println(player + " 's turn");             system.out.println("enter row , column [1-3, space, 1-3]: ");             int row = reader.nextint();             int column = reader.nextint();                 boolean success = board.placexor0(player, row, column);             if(!success)                 system.out.println("error: cell occupied!");             else{                 system.out.println(board);                 if(player == 'x')                     player = 'o';                 else                     player = 'x';                 }             }         } } 

tttboard.java

public class tttboard{     private char[][] board;      public tttboard(){         board = new char[3][3];         reset();     }      public void reset(){         for(int row = 0; row < 3; row++)             for(int column = 0; column < 3; column++)                 board[row][column] = '-';         }     public string tostring(){         string result = "\n";         for(int row = 0; row <3; row++){             (int column = 0; column < 3; column++)                 result += board[row][column] + " ";             result +="\n";         }         return result;     }     public boolean placexor0(char player, int row, int column){         if(board[row -1][column -1]=='-'){             board[row-1][column-1]= player;             return true;         }         else             return false;      }     public boolean checkwinner(){         return(checkrowsforwin()||checkcolumnsforwin()||checkdiagnalsforwin());     }      public boolean full(){         boolean full = true;         for(int row = 0; row < 3; row++){             for(int column = 0; column < 3; column++){                 if(board[row][column] == '-'){                     full = false;                 }             }         }         return full;     }     public boolean checkrowsforwin(){         for(int row = 0; row < 3; row++){                 if(placexor0(board[row][0], board[row][1], board[row][2]) == true){                     return true;                 }             }          return false;     }     public boolean checkcolumnsforwin(){         for(int column = 0; column < 3; column++){             if(placexor0(board[0][column], board[1][column], board[2][column]) == true){                 return true;                 }             }         return false;     }     public boolean checkdiagnalsforwin(){         return((placexor0(board[0][0], board[1][1], board[2][2]) == true) || (placexor0(board[0][2], board[1][1], board[2][0]) == true));         }     } 

new code:

public class tttboard{     private char[][] board;      public tttboard(){         board = new char[3][3];         reset();     }      public void reset(){         for(int row = 0; row < 3; row++)             for(int column = 0; column < 3; column++)                 board[row][column] = '-';         }     public string tostring(){         string result = "\n";         for(int row = 0; row <3; row++){             (int column = 0; column < 3; column++)                 result += board[row][column] + " ";             result +="\n";         }         return result;     }     public boolean placexor0(char player, int row, int column){         if(board[row -1][column -1]=='-'){             board[row-1][column-1]= player;             return true;         }         else             return false;      }     public boolean checkwinner(){         return(checkrowsforwin()||checkcolumnsforwin()||checkdiagnalsforwin());     }     /*public string getwinner(){         for(int row = 0; row <3; row++){             (int column = 0; column < 3; column++)             }         }*/     public boolean full(){         boolean full = true;         for(int row = 0; row < 3; row++){             for(int column = 0; column < 3; column++){                 if(board[row][column] == '-'){                     full = false;                 }             }         }         return full;     }     public boolean checkrowsforwin(){         for(int row = 0; row < 3; row++){                 if(board[row][0]== board[row][1]&& board[row][0]== board[row][2]){                     return true;                 }             }          return false;     }     public boolean checkcolumnsforwin(){         for(int column = 0; column < 3; column++){             if (board[0][column] == board[1][column] && board[0][column] == board[2][column]) {                 return true;                 }             }         return false;     }     public boolean checkdiagnalsforwin(){         return((board[0][0]== board[1][1]&& board[0][0] == board[2][2]) || (board[0][2] == board[1][1] && board[0][2]== board[2][0]));         }   } 

in checkrowsforwin, have lines of code:

if(placexor0(board[0][column], board[1][column], board[2][column]) == true) {     return true; } 

you want replace with:

if (board[0][column] == board[1][column] && board[0][column] == board[2][column]) {     return true; } 

and similar thing checkcolumnsforwin , checkdiagnalsforwin


Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -