我需要开发一个程序,随机创建一个int值的数组(10x10)(1或0; 1 =墙; 0 =没有墙),并有一个循环,要求用户在迷宫中导航数组时尚。此循环还必须测试用户是否已到达阵列的底部。最后,程序必须使用用户的路径打印数组,基本上用户触摸的任何值都不是1或0。
我可以创建并打印数组没问题,并将其设置为仅值1或0我的困惑是:
如何降低获得1的几率。
如何创建循环来导航/跟踪迷宫和用户的路径。
如何更改用户触摸的数组值,并正确打印新更改的数组。 (最好使用节点)。
让我们说这是一个随机生成的5x5阵列:
0 1 0 0 1
0 1 1 1 0
1 0 1 1 0
0 1 0 0 1
1 1 0 1 1
这是使用此数组的输出窗口的样子:
你想去哪里(上,下,左,右):
向下
你想去哪里(上,下,左,右):
右
你撞墙了!游戏结束了!
5 1 0 0 1
5 7 1 1 0
1 0 1 1 0
0 1 0 0 1
1 1 0 1 1
0是允许用户通过它们的开放路径,1是用户遇到它们时结束游戏的墙。 5表示用户的路径,7表示用户在墙上撞墙。
在我的情况下,阵列将是10x10,并且只在程序结束时打印一次。用户不会看到原始数组。
我不是要求任何人为我编程,只是向正确的方向推进。从逻辑上讲,我似乎无法在脑海中弄清楚这一点。我再次对Java编程非常陌生,并且感谢任何人愿意提供的任何帮助。
我为这个很长的问题道歉,我只想尽可能清晰,因为我的情况需要完全理解背景。如果需要更多信息,我会在一天内回复。如果我的解释没有意义,我还添加了我的代码照片。
我非常感谢所给予的任何和所有帮助,非常感谢! :d
答案 0 :(得分:0)
获得1的可能性较低,请参阅this link。
将播放的当前位置保存在对象/变量/类ex:
中public static class Location {
public static int x = 0;
public static int y = 0;
}
每次用户移动时,例如down
:
Location.x++
。if(Grid[Location.x][Location.y] == 1) /* do stuff */
。Grid[Location.x][Location.y] = '{your value}'
。答案 1 :(得分:0)
Random r = new Random();
iWallChance = r.nextInt(100);
2和3. Ali Sharabiani对此有一个很好的答案。