Java 中井字游戏的有效移动方法



我有一个开发井字游戏的任务,但我的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;
}

最新更新