我基本上是想制作一个涉及网格的游戏。这是我到目前为止所做的事情(在我解释我需要发生的事情之前看看游戏会有所帮助):
Javascript(请参阅jsfiddle for html):
var score = 0;
var points = function(val, box) {
var noise = Math.round(Math.round(0.1*val*Math.random()*2) - 0.1*val);
score = score + (val + noise);
var square = document.getElementById(box);
square.innerHTML = val + noise;
square.style.display='block';
setTimeout(function() {
square.style.display='none';
}, 400);
document.getElementById("out").innerHTML = score;
}
http://jsfiddle.net/stefvhuynh/aTQW5/1/
网格左下角的四个红色方块需要成为游戏的起点。当您单击其中一个框时,您可以通过单击相邻框来沿网格移动。基本上,我需要做到这一点,以便玩家只能从他们刚刚点击的盒子上,上,下,左和右移动。当玩家点击他们不应该点击的框时,我不希望调用点功能。
此外,我需要制作它,以便玩家在400毫秒之前不能点击另一个盒子。
我对编程比较陌生,所以任何帮助都会很棒。如果有办法,我也会欣赏如何提高程序效率的技巧。
答案 0 :(得分:0)
我建议您为所有方框设置类似的ID,例如box_x_y
,并存储字符串列表,例如allowedSquares
。
然后你就可以编写一个函数,在点击一个方框时,会检查它的id是否在allowedSquares
中,如果是,则调用points(val, box)
然后更新{的内容{1}}反映位置的变化。
对所有框使用标准id约定的关键是你可以编写allowedSquares
和getPosition(box)
来解析id字符串以返回框位置,反之亦然。< / p>
您甚至可以让getBox(intX, intY)
功能更改相邻框的颜色,以显示接下来的步骤。
免责声明:这些不是您正在寻找的代码行。
这只是一个适合您的启动套件,它采用3x3网格,右下角为单方形。您将不得不调整此代码。此外,我预测出境时会出现问题。我会让你想一想,因为我更喜欢在这些情况下为完整的解决方案提供食物......
updateAllowedSquares(clickedBox)