Javascript Tic-tac-toe游戏

时间:2013-06-21 17:18:30

标签: javascript html tic-tac-toe

大家好! 昨天,我开始为我想制作的网站制作一个井字游戏。经过大约10个小时的工作,我想出了大约150行代码,仅用于简单的游戏。像往常一样,当我制作大量代码时,我无法识别的东西出错了。我的整个代码都不起作用。由于大量代码,我将我的代码复制粘贴到jsFiddle项目中,如下所示。我的问题是:我可以使用数组或类型的东西来减少if语句和冗余的数量吗?如果有人也可以帮我创建更快,更高效的代码,我会非常感激。提前谢谢!

jsfiddle.net/justinpchang/3L6tp /

3 个答案:

答案 0 :(得分:3)

您是否尝试通过JSLint运行它?它验证您的代码并查找潜在的错误。这也会伤害你的感情。

答案 1 :(得分:2)

为什么不这样:

/* This represents the current game, declare it upon starting a new game*/
var board = [['-','-','-'],['-','-','-'],['-','-','-']];

function notTaken(board,row,col) {
    return (board[row][col] == '-');
}

function hasX(board,row,col) {
    return (board[row][col] == 'x');
} // have a similar function for O

这消除了代码中的大量冗余。此外,使用HTML5,您可以向div元素添加自定义属性,这将指定单元格的行和列。因此,例如top-mid div将具有属性“data-row”和“data-col”以及值0和1。我认为属性名称必须以“data-”开头,但我不确定。

哦,另外一件事:永远不要将布尔值与真或假相比,这是多余的。而不是做:     (some_bool!= false) 做就是了:     (some_bool)

因为布尔人无论如何都只能是真或假。同理:     (some_bool == false) 可以写成:     !(some_bool)

希望这有帮助。

答案 2 :(得分:0)

通过复制/粘贴代码,你就失去了编程的目的......尝试在你的代码中找到一个模式,并使函数用不同的变量做同样的事情。然后它将更具可读性和可扩展性。