我有一个开发井字游戏的任务,但我的isValidMove
方法造成了麻烦。即使在测试isValidMove
方法后,它也会替换符号。实际上,它永远不会isValidMove
方法中检查"if"条件。
public boolean executeMove(String move, Player p)
{
int row;
int col;
row = (int)(move.charAt(0)-'0');
col = (int)(move.charAt(1)-'0');
if(isValidMove(move) == false)
{
board[row-1][col-1]= p.getSymbol();
printBoard();
}
return true;
}
public boolean isValidMove(String move)
{
int row = (int)(move.charAt(0)-'0');
int col = (int)(move.charAt(1)-'0');
if(board[row-1][col-1] == ' ')
{
return true;
}
return false;
}
PS:如果有人可以告诉我..程序以字符串形式输入玩家姓名,但打印地址而不是打印姓名..该怎么办?
似乎只有在合法执行移动的情况下,您的executeMove()
才能返回true
。但是你回来true
即使是非法的举动。
public boolean executeMove(String move, Player p) {
int row;
int col;
row = (int)(move.charAt(0)-'0');
col = (int)(move.charAt(1)-'0');
boolean valid = isValidMove(move); // <-- remember is the move valid
if (valid) {
board[row-1][col-1] = p.getSymbol(); // <-- place symbol only if move is valid
}
printBoard();
return valid;
}