有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java生成计算机移动

我做了一个tic tac toe游戏,虽然我有一个可以工作的电脑移动代码,但它似乎是从左到右,而不是选择一个随机的板槽

以下是我的电脑移动代码:

public static void compTurn(char[][] board, char computer)
{
    for (int i = 0; i < board.length; i++)
    {
        for (int j = 0; j < board.length; j++)
        {
            if(board[i][j] == ' ')
            {
                board[i][j] = computer;
                return;
            }
        }
    }
}

共 (1) 个答案

  1. # 1 楼答案

    你现在要做的是按顺序浏览这些空间,并检查它们是否打开。如果是的话,电脑会移到那里。你需要做的是选择一个随机点,直到它找到一个。更好的是,你可以保留一个数组中被占用的点的列表,并尝试移动到一个空闲的点

    这是一个基本的解决方案,但老实说,使用阵列是一个更好的方法,无论是在性能还是优雅方面。你基本上会创建两个数组;一个用于包含已占用的插槽(用于保存玩家占用该插槽的内容),另一个用于保存空闲位置的数组(可以是一个简单的布尔值,用于指示spot可用于移动)。每转一圈,检查空置阵列中是否有一个空间是开放的,随机地,他们移动到其中

    public static void compTurn(char[][] board, char computer)
    {
        Random rand;
        boolean moved = false;
    
        /* If we haven't moved, look for a space to move to
           max = the highest space you have
           min = the lowest space you have
         */
        while (!moved) {
            int randomSpace = rand.nextInt((max - min) + 1) + min;
    
            /* I leave this part for you to figure out */
            if(thisSpace == ' ')
            {
                //make the computer move to this space
                moved = true;
            }
        };
    
    }
    

    由于这显然是一项作业,我留下了一些空白供你自己填写,但这应该是你要找的