java - 如何在Java中重新对井字棋的二维数组进行移动?

标签 java

我正在制作井字游戏。它工作得很好,只是我无法确定应该写什么条件才能重新采取无效的举动。

这就是移动的方式 (还有另一个公共(public)方法可以调用这两个私有(private)方法。)

private String getHumanMove()
{
    Scanner in = new Scanner(System.in);
    System.out.println("Enter Move: ");
    String str = in.next();
    return str;
}

private String getComputerMove()
{
    System.out.println("Enter Move: ");
    Random r = new Random();
    int r_row = r.nextInt(3) +1;
    int r_col = r.nextInt(3) +1;
    String str = String.valueOf(r_row)+ String.valueOf(r_col);
    return str;
}

这是 isValidMove() 方法

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;
}

我尝试在 isValidMove() 中使用 while 循环,但它不起作用。 请帮我看看如何再次输入棋步?

最佳答案

类似

String move;
do { 
    move = getHumanMove();
} while(!isValidMove(move));

关于java - 如何在Java中重新对井字棋的二维数组进行移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29876677/

相关文章:

java - Eclipse 启用注释处理导致错误

java - 需要帮助配置 maven .pom 来构建 .exe 文件

java - 用于根据 JComboBox 选择确定要执行的操作的 JButton

java - 为什么我无法从 Facebook 获取生日信息

java - 使用 Itext 替换 PDF 文件中的字符串,但不替换字母 X

Java Quartz cron 表达式

java - 总是使用 Maven `clean` 目标?

java - 包含 java.util.Properties、sql.Date、util.Date 等不可修改扩展的库

java - 在 setter/getter 中创建 if

java - 模块化应用程序的设计模式(如何重用实体)