Java 如何检查棋盘的所有方块是否至少被踩过一次?

Java 如何检查棋盘的所有方块是否至少被踩过一次?,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我有以下问题,我自己无法解决 有一个8x8维的二维阵列。一只狗被随机放在这个维度内。狗不允许走出维度,如果它这样做了,这些步骤不被计算在内。狗走到另一个广场的每一步都被计算在内。每次模拟应计算狗至少一次访问8x8尺寸的所有正方形所需的总步数 我如何知道是否所有64个正方形都至少有一次步进以停止模拟并打印步进 int [] [] dimension = new int [8][8]; boolean [] [] onSquare = new boolean [8] [8]; for (int i

我有以下问题,我自己无法解决

有一个8x8维的二维阵列。一只狗被随机放在这个维度内。狗不允许走出维度,如果它这样做了,这些步骤不被计算在内。狗走到另一个广场的每一步都被计算在内。每次模拟应计算狗至少一次访问8x8尺寸的所有正方形所需的总步数

我如何知道是否所有64个正方形都至少有一次步进以停止模拟并打印步进

int [] [] dimension = new int [8][8];
boolean [] [] onSquare = new boolean [8] [8];

for (int i = 0; i < dimension.length; i++) {
    for (int j = 0; j < dimension.length; j++) {
        dimension [i] [j] = j;
}
while (true) {
    int dog = rnd.nextInt(4)+1;

    if (dog == 1) {
      x++; // x,y show position of the dog
      counter++;
    }
    if (dog == 2) {
      x--;
    }
    if (dog == 3) {
      y++;
    }
    if (dog == 4) {
      y--;
}
int[][]维度=新的int[8][8];
boolean[]onSquare=新的boolean[8][8];
对于(int i=0;i
将二维数组元素从“未访问”翻转为“已访问”时,可以跟踪已访问的方块数,如下所示:

int countVisited = 0;
...
// Flip from not visited to visited:
if (!visited[i][j]) {
    visited[i][j] = true;
    countVisited++;
}

现在,您对“所有已访问的方块”的检查简化为
if(countvisted==64).

您可以在将2D数组元素从“未访问”翻转为“已访问”的同时跟踪已访问的方块数,如下所示:

int countVisited = 0;
...
// Flip from not visited to visited:
if (!visited[i][j]) {
    visited[i][j] = true;
    countVisited++;
}

现在,您对“所有方块均已访问”的检查简化为
if(countvisted==64).

什么是“步进”实际上是什么意思?为什么这么做很重要?当你没有真正包含你正在谈论的代码时,你很难理解你在描述什么,所以为什么你不发布一些代码来说明这个问题?你所做的就像通过电话向医生咨询医疗建议。你的代码必须经过检查,以了解真正的问题所在继续。@MarsAtomic我需要知道如何检查每个方块是否至少交叉一次-我添加了源代码,这应该可以让我的意思有点清楚。当所有方块都被覆盖时,你想要总步数吗?我不明白。@dasblinkenlight已经回答了你的问题。“得到步数”是什么实际上是什么意思?为什么这么做很重要?当你没有真正包含你正在谈论的代码时,你很难理解你在描述什么,所以为什么你不发布一些代码来说明这个问题?你所做的就像通过电话向医生咨询医疗建议。你的代码必须经过检查,以了解真正的问题所在继续。@MarsAtomic我需要知道如何检查每个方块是否至少交叉一次-我添加了源代码,这应该可以让我的意思有点清楚。当所有方块都被覆盖时,你想要总步数吗?我不明白。@dasblinkenlight已经回答了你的问题。所以,我所要做的就是创建一个布尔array与网格大小相同,在网格内的每一步都将其翻转为true?当我这样做时,我至少有400步才能到达每一个正方形-我将源代码编辑到主题中。因此,我所要做的就是创建一个与网格大小相同的布尔数组,在网格内的每一步都将其翻转为true?当我我这样做,我得到了400个步骤,至少每平方米一次-我编辑了主题的源代码。