java - 使用具有相同布局的二维数组绘制迷宫

标签 java grid multidimensional-array maze

我正在创建一个基于网格的迷宫游戏,目前正在使用 10 x 10 2d 整数数组来处理迷宫绘制和简单的碰撞检测。

我的问题是,当使用嵌套 for 循环绘制网格时,它会按列绘制网格,并且绘制的迷宫会翻转。例如

int [][] map= {
                 {0,0,0,0,0,0,0,0,0,0,},
                 {0,0,0,0,0,0,0,0,0,0,},
                 {2,1,1,1,0,0,0,0,0,0,},
                 {0,0,0,1,0,0,0,1,1,2,},
                 {0,0,0,1,0,0,0,1,0,0,},
                 {0,0,0,1,0,0,0,1,0,0,},
                 {0,0,0,1,1,1,1,1,0,0,},
                 {0,0,0,0,0,0,0,0,0,0,},
                 {0,0,0,0,0,0,0,0,0,0,},
                 {0,0,0,0,0,0,0,0,0,0,}
               };

for(int i=0;i<map.length;i++){
   for(int j=0;j<map.length[0];j++){
     switch(map[i][j]){
      case 0:drawRect(i,j,width,height,blue);
       break;
      case 1:drawRect(i,j,width,height,white);
       break;
      case 2: drawRect(i,j,width,height,red);
       break;
     }
   }  
}

画这个

enter image description here

而不是

enter image description here

我目前解决这个问题的方法是翻转 i 和 j 值。但是有没有办法按照写出的方式绘制二维数组,或者甚至有更好的方法来创建仍然非常简单的网格迷宫?

最佳答案

它正在横向绘制你的 map ,因为你已经这样读取了 i/j 值。该循环获取左上角的值并在绘制时向下读取,然后进入下一列并再次向下绘制。这就是为什么翻转 i/j 可以修复它的绘制方式。

关于java - 使用具有相同布局的二维数组绘制迷宫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16105252/

相关文章:

java - 使用JXLS导入Excel : is it possible to specify sheet by order rather than name?

C# Foreach XML 节点

python - 将 XYZ 文件中的不规则 3d 数据插值到规则网格

javascript - 如何从对象数组中的嵌套数组访问特定值?

java - 从文本中删除 HTML 和 XML

java - 使用socket连接PC的问题

javascript - 如何 "sort"特定色调的颜色

c++ - 二维数组

c++ - 二维对象数组内存问题 C++

java - 使用 getter 方法表达式访问数字属性