好的,所以标题很少说,但是我希望为迷宫做一个编辑。我有一个任务来制作一个迷宫求解器。我是通过阅读文件来做到这一点的。第一行包含行数和列数。在那之后,制作迷宫是一个迷宫的符号。我跑过每个地方,根据符号做了一个矩阵,数字代表那里有什么。
For Instance:
11 25
*************************
* *** **
** * ***** ***** ****
** *** ********** ****
** **** * ****
** ***** ***** **
** *** ***** ********* **
** *** ***** ********* **
** ** ***** ********* **
* *** *** **
***************** *****
1111111111111111111111111
1001110000000000000000011
1100010111110111110001111
1101110011111111110001111
1101111000000100000001111
1100000111110111110000011
1101110111110111111111011
1101110111110111111111011
1100110111110111111111011
1001110000000001110000011
1111111111111111100011111
这是我的矩阵。现在我解决了这个问题,所以这不是问题。但我想要它所以我可以询问行数和列数,绘制一个大小的矩形,使矩阵[row] [column]大到全0,适合屏幕,网格基于矩阵然后当他们单击矩阵[0] [0]的框,将其更改为1,每个网格框一个,表示矩阵中的一个点。
这样我可以让他们制作一个迷宫然后让程序解决它,或者他们可以保存它。
当然这是我遇到问题的地方,如何根据行数和列数绘制一个有网格的矩形然后制作它,以便我知道他们点击的位置......
任何帮助都会很棒。
编辑:好的我根据给定的行和列绘制了迷宫。我有它检测到点击,它可以放在我点击的方格。但它并没有改变整体矩阵,然后重新绘制整个事物。答案 0 :(得分:1)
你似乎已经解决了,你可以使用new
运算符制作任何特定大小的迷宫:
int[][] maze = new int[rows][cols];
我不知道您使用的是哪个用户界面包,但大多数都沿着相同的行工作:屏幕是一定宽度和高的像素数,并且您通过指定开始和结束的像素坐标来绘制线条。同样,当用户点击时,您将获得以像素为单位的点击坐标。您可以通过获取屏幕的总宽度和高度并除以迷宫的行数和列数来确定盒子的大小。使用这些尺寸绘制迷宫。您还可以通过获取单击的(x,y)坐标(以像素为单位)并将x除以框宽度和y除以框高度来确定单击的行和列(可能在调整开始绘制迷宫的位置后,如果它不在像素(0,0)处。