网站新手并没有长时间编码。我试图找到一种方法来检查输入的值是否与数组范围有关,以及检查位置是否已被占用。如果问题不顺利,我遇到了麻烦。我希望它以任何顺序捕获问题并请求它们输入另一个值,然后再次重新检查。谢谢你的建议!
这就是我最终要做的事情。有什么想法吗?再次感谢。
//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;
}
答案 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);
}
}