Tic Tac Toe,检查合法举措

时间:2014-04-26 21:56:22

标签: java

网站新手并没有长时间编码。我试图找到一种方法来检查输入的值是否与数组范围有关,以及检查位置是否已被占用。如果问题不顺利,我遇到了麻烦。我希望它以任何顺序捕获问题并请求它们输入另一个值,然后再次重新检查。谢谢你的建议!

这就是我最终要做的事情。有什么想法吗?再次感谢。

//in play game method
while(checkNotInBounds(move)){
        System.out.println("Out of Bounds! Please try again...");
        move = getMove(player);          
     } 
     while(!checkSpaceFree(move, boardValues)){
        System.out.println("Space Taken! Please try again...");
        move = getMove(player);  

        while(checkNotInBounds(move)){
        System.out.println("Out of Bounds! Please try again...");
        move = getMove(player);          
     } 



//Method: checkInBounds
//Purpose: find out if move is in bounds
public static boolean checkNotInBounds(int[] move){
  if(move[0] > 2 || move[0] < 0 || move[1] > 2 || move[1] < 0){
     return true;}
  return false;
}     

//Method: checkFreeSpace
//Purpose: find if space is free 
public static boolean checkSpaceFree(int[] move, char[][]boardValues){         
  if(boardValues[move[0]][move[1]] == ' '){
     return true;}
  return false;
}  

1 个答案:

答案 0 :(得分:2)

为什么不把它分成两种方法而不是一种方法,因为你试图在那里做两件事而且切换不是那么的

做类似

的事情
public static boolean checkLegalMove(int[] move, char[][] boardValues){
  if(move[0] > 2 || move[0] < 0 || move[1] > 2 || move[1] < 0){
   return false;
 } 
  if(boardValues[move[0]][move[1]] != ' '){           
    return false;
 }
 return true;
 }

public void doSomething(boolean checkLegalMove(move,boardValues), char player){
 boolean check = checkLegalMove(move,boardValues);
 char temp = player;

if(check ==true ){
 //do something to player
 }else{
  getMove(player);
  }
}