我有一个迷宫绘图功能,因为我不喜欢。目前,它的工作方式是取一个中点,然后找到它上下左右的位置并将它们放入数组中。然后检查它们是否在迷宫网格之外,并将它们从数组中移除。然后检查是否有任何已经被访问过(这将是一个迷宫函数,但现在它只是绘制一条长虚线的摆动线)并从数组中删除。JavaScript迷宫代码失败
然后,如果没有选项,则退出或返回,否则将绘制彩色正方形并再次运行该函数。
You can see it here,目前我有网格很小扩增2个问题我越来越:
它往往认为,负坐标确定。这使我想到的东西是非常错误的线:
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/maze/maze.zip
一个zip文件,如果你要我澄清那些仅仅发表评论。
NB此刻它应该跳过一个正方形,所以它不会是一条连续的线。
Ahhhh ......这很有道理!谢谢你的帮助。 – Djave
另一种选择是在for循环周围交换以便从结尾开始并向后计数 - for(i = options.length-1; i> = 0; i - ){ – Djave