我有一个无法正常工作的迷宫绘图功能。目前,它的工作原理是取一个中点,然后找到它的上方、下方、左侧和右侧的位置 - 并将它们放入一个数组中。然后它检查其中是否有任何在迷宫网格之外,并将它们从阵列中移除。然后它检查是否已经访问过任何内容(这将是一个迷宫函数,但现在它只是绘制一条长虚线摆动线)并将其从数组中删除。
然后,如果没有任何选项,则退出或返回,否则将绘制一个彩色方块并再次运行该函数。
你可以在这里看到,目前我的网格非常小,可以放大我遇到的两个问题:
它经常认为负坐标是可以的。这让我觉得这些台词很不对劲:
if(options[i][0]<0 || options[i][1]<0 || options[i][0]>size-1 || options[i][1]>size-1){ // ... let us know that you're removing them... console.log("splicing: out of bounds "+options[i][0]+","+options[i][1]); // ... then remove them options.splice(i, 1);
它也经常没有注意到一个广场已经被访问过,并且会覆盖它们,这让我认为这条线没有按预期工作:
if(options.length > 0){
如果你启动控制台,会有很多输出解释正在发生的一些事情,如果它似乎工作正常,只需点击几次刷新它就会出错 - 特别是如果它很早就出现在右上角.
我当前的代码在这里:http ://djave.co.uk/hosted/maze/js/script.js 但如果它有帮助,那么在http://djave.co.uk/hosted/上还有一个包含所有内容的 zip 文件迷宫/maze.zip
如果您想让我澄清任何事情,请发表评论。
注意它现在应该跳过一个正方形,所以它不会是一条连续的线。