求VB做踩地雷的算法,最好是最优算法哦

来源:百度知道 编辑:UC知道 时间:2024/05/16 01:02:57
VB的控件不能组成二维数组,所以这里用一维数组做地雷矩阵比较麻烦,要映射。
关键算法我考虑了一下,好像是分别考虑8个位置有没有地雷,如果没有,则判断8个位置的每个位置相应的8个位置有没有地雷,依次类推,我按照思路编完后,函数调用的堆栈溢出,看来是调用次数冗余太多次了,在此求好一点的算法,二维的也可以,希望能提供伪代码,VB代码最好 o(∩_∩)o...
你说的是一维和二维转换的方法吧,我是想解决堆栈溢出的问题,有堆栈溢出肯定是算法本身有问题,要优化。不知道楼下有没有什么高见?

模拟指针可以吧?
index(x,y) as integer是普通的二维数组,xy是坐标
比如说控件都是Label,名字是LBL()的控件数组
dim index() as label
这样就是指针了
index(1,1)=LBL(1)
index(1,2)=LBL(2)
这样依此类推
等于就把一维控件数组转化成了二位指针数组
这样可以吧
而且因为是指针数组所以对index()所做的操作会直接表现在LBL()控件数组上
直接对index()数组进行计算操作就行了

应该是可行的吧

追加:
对于堆栈溢出.....
其实我也没有什么太好的办法
(因为我也不是很精通)
不过应该注意的是
应该使调用次数在可控的范围之内
或者将一个函数拆分成几个函数分别调用
多使用内存尽量少使用缓存
还有就是通过修改代码尽量不要出现逻辑性的错误
嗯....还有就是可以通过附加的算法
在循环中排除无用的判定以减少函数调用的次数

就这些了....
仅供参考