Javascript国际象棋棋盘

时间:2016-03-14 11:12:34

标签: javascript chessboard.js

我一直在尝试使用以下代码解决雄辩的javascript棋盘练习。这些线以正确的顺序打印,但由于某种原因我似乎找不到,循环是无限的。非常感谢您指出问题所在的任何帮助,谢谢。

我的代码如下:

 var line= ['# # # #', ' # # # #']

 for (var i = 0; i < 7; i ++) {
    if ( i = (i-1)%2 == 0 )
       console.log(line[0]);
       else console.log(line[1]);
 };

3 个答案:

答案 0 :(得分:1)

i将始终小于循环的限制,因为您在if条件中的分配

for (var i = 0; i < 7; i ++) {
     // i & 1 is a mask that matches the rightmost bit, which, if set
     // indicates that a number is odd
     console.log(line[i & 1]);
}

答案 1 :(得分:0)

感谢您的回答,我没有意识到在if语句中设置为i的条件的问题(新手错误)。 我将代码修改为以下代码并且它工作得很好,并且它似乎比其他解决方案中提供的代码更短:

var line= ['# # # #', ' # # # #']

   for (var i = 0; i < 7; i ++) {

   if ( i%2 == 0 )
      console.log(line[0]);

     else console.log(line[1]);
    };

感谢您的时间!

答案 2 :(得分:0)

您可以使用编程计算字符,而不是使用值数组。

&#13;
&#13;
var html = "";
for(var i = 0; i<7; i++){
  for(var j=0; j<7; j++){
    html += (i+j) % 2 == 0?"# ":"&nbsp;&nbsp;";
  }
  html+="<br/>"
}
document.write(html)
&#13;
&#13;
&#13;