首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript Tic-tac-toe游戏

Javascript Tic-tac-toe游戏
EN

Stack Overflow用户
提问于 2013-06-22 01:18:30
回答 3查看 610关注 0票数 0

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

jsfiddle.net/justinpchang/3L6tp/

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-22 01:31:43

为什么不这样做呢:

代码语言:javascript
复制
/* 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元素添加自定义属性。因此,例如,顶部-中部div将分别具有属性"data-row“和"data-col”以及值0和1。我认为属性名称必须以"data-“开头,但我不确定。

哦,还有一件事:永远不要将布尔值与真或假进行比较,这是多余的。不做:(some_bool != false)只做:(some_bool)

因为布尔值只能是真或假。类似的:(some_bool == false)可以写成:!(some_bool)

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2013-06-22 01:21:23

你有没有试过通过JSLint运行它?它会验证你的代码并寻找潜在的bug。这也会伤害你的感情。

票数 3
EN

Stack Overflow用户

发布于 2013-06-22 01:24:55

通过到处复制/粘贴代码,你违背了编程的目的……试着在你的代码中找到一种模式,让函数对不同的变量做同样的事情。那么它将更具可读性和可扩展性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17240893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档