Java Antwalk - 二维数组

标签 java arrays multidimensional-array

有一个维度为 9x9 的二维数组。 Ant 从单元格 (5,5) 或中心开始。它随机向北、向南、向东或向西移动。当 Ant 从网格上掉下来时,它就会停止行走。它掉落的空间用 X 标记。在矩阵中,它应该显示 Ant 访问每个单元格的次数以及 Ant 掉落的移动次数。

我不知道从哪里开始或如何去做。比如如何制作北、南、西、东方法。

这是我到目前为止所拥有的。

public static void main(String [] args)
{
    int [][] grid = new int[9][9];

    for (int r = 0; r< grid.length; r++)
    {
        for (int c = 0 ; c<grid[0].length; c++)
        {
            grid[r][c] = 0;
        }
    }

    boolean test = true;
    while(test)
    {
        int random =  (int)Math.random()*4+1;
        if (random == 1)
        {

        }
        else if (random == 2)
        {

        }
        else if (random == 3)
        {

        }
        else if (random == 4)
        {

        }
    }
}

最佳答案

你的想法是正确的,现在你要做的就是按照随机指定的方向移动,并增加数组中的值。这是我的做法。

int count = 0;
int x = 4;
int y = 4; // arrays are 0 based
while(true)
{
    int random =  (int)Math.random()*4+1;
    if (random == 1)
    {
        x--; // move left
    }
    else if (random == 2)
    {
        x++; // move right
    }
    else if (random == 3)
    {
        y--; // move down
    }
    else if (random == 4)
    {
        y++; // move up
    }
    if(x < 0 || y < 0 || x >= grid.length || y >= grid[x].length) break;
    count++;
    grid[x][y]++;
}
System.out.println(count); // number of moves before it fell

关于Java Antwalk - 二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20321181/

相关文章:

java - 使我的自定义 View 可以由许多类扩展

java.lang.ClassNotFoundException : org. apache.hadoop.conf.配置

iOS - 对象未添加到数组

Python 数组在迭代 char 数组时出现乱序

arrays - Python 2.7 : looping over 1D fibers in a multidimensional Numpy array

java - 如何使用java中的excel从第1列和第3列获取单元格值并将其作为键值对放入 map 中

java - 如何使用 Java 在 Storm Bolts 中编写prepare() 方法?

javascript - 枚举到数组的值

python - 如何在有和没有重叠的情况下将 numpy 数组拆分为固定大小的 block ?

c++ - 将二维的一部分复制到自身上