我正在创建一个tic-tac-toe游戏,其中一个函数必须遍历9个字段中的每一个(tic-tac-toe在3x3网格上播放)。我想知道哪个更高效(哪一个可能更快,或者在这种情况下首选的脚本方式是什么)-使用两个for嵌套循环,如下所示:
for(var i=0; i<3; i++) {
for(var j=0; j<3; j++) {
checkField(i, j);
}
}或者像这样硬编码:
checkField(0, 0);
checkField(0, 1);
checkField(0, 2);
checkField(1, 0);
checkField(1, 1);
checkField(1, 2);
checkField(2, 0);
checkField(2, 1);
checkField(2, 2);由于只有9个组合,使用两个嵌套的for循环可能有点夸张,但这也更容易理解。然而,for循环将递增变量,并检查i和j是否每次都小于3。
在这个例子中,节省的时间至少可以忽略不计,但是在这种情况下,首选的编码方式是什么呢?
谢谢。
发布于 2011-01-16 19:40:45
不要硬编码9行相同的代码!
发布于 2011-01-16 19:39:16
这是一个不成熟的微优化。在这种情况下,总是选择更清晰的解决方案-所以使用for循环:),顺便考虑一下,如果明天的网格是4x4:)
发布于 2011-01-16 19:40:24
节省时间:可以忽略不计。可能是无法测量的。
首选样式:嵌套for循环。好吧,你可能永远不会把它变成4x4、5x5或者3d (或者4d!)tic-tac-toe -但这是一个很好的习惯。如果你忘记了什么,避免了剪切和粘贴错误,也更容易看到。
https://stackoverflow.com/questions/4705079
复制相似问题