我之前发布了一个类似的问题,但它被删除了,因为我觉得我在描述我的问题时表现不佳。
请在此处查看我当前的节目:
我的小伙伴: http://jsfiddle.net/rich2233/JGvAD/
我正试图模仿这个游戏:http://javascript.internet.com/games/concentration.html
我的版本不会使用图片,而是使用简单的数字。一旦游戏结束,它将提醒用户他们花了多少次尝试来匹配所有内容。它也不会跟踪时间。
我认为我的代码在逻辑方面完全正确,但是它没有运行。我是JS的新手,我的调试技巧有限,但我似乎无法找到任何语法错误。任何人都可以帮助这个程序工作吗?非常感谢。
var attempts = 0;
var firstClick;
var secondClick;
var numFoundPairs = 0;
var click = true;
function display(id)
{
attempts++;
if (click == false)
return;
var num = parseInt(id);
if (firstClick == null)
{
firstClick = num;
document.getElementById(id).value = a[num];
return;
}
if (secondClick == null)
secondClick = num;
if (firstClick == secondClick)
{
secondClick = null;
return;
}
document.getElementById(boxNum).value = a[num];
if (document.getElementById(firstClick).value !=
document.getElementById(secondClick).value )
{
click = false;
setTimeout ('hide(' + secondClick + ')', 3000);
setTimeout ('hide(' + firstClick + ')', 3000);
}
else
{
/* Show the identical blocks */
firstClick = null;
secondClick = null;
}
/* If the player found the eight pairs (since 16/2 = 8) */
if (numFoundPairs == 8)
{
/* Let them know how many attempts it took them */
alert ("You took " + Math.floor(String(attempts)/2) + " attempts.");
}
}
/* Function to hide the particular id */
function hide (id)
{
document.getElementById(id).value = " ";
click = true;
}
/* Create the array of number and distribute them randomly on the grid */
function create()
{
a = new Array (1, 1, 2, 2, 3, 3, 4, 4, 5, 5,
6, 6, 7, 7, 8, 8);
for (var i = 0; i < a.length; i++)
{
var idx = Math.floor (Math.random() * a.length);
var tmp = a[i];
a[i] = a[idx];
a[idx] = tmp;
}
}
答案 0 :(得分:2)
http://rich2233.comoj.com/处的错误发生在memory.js。
的第28行未捕获的ReferenceError:未定义boxNum
您应该考虑使用Firebug(适用于Firefox)或Chrome开发人员工具(来自股票,按CTRL + SHIFT + J打开它们)等JavaScript控制台。 Firefox也有一个JavaScript错误窗口,也有库存。
他们会帮助你立即发现这样的错误。