JavaScript棋盘程序

JavaScript Chessboard program

本文关键字:程序 JavaScript      更新时间:2023-09-26

我的任务是:

编写一个程序,创建一个表示8×8网格的字符串,使用换行符分隔行。在网格的每个位置都有一个空格或#字符。这些字应该组成一个棋盘。

将此字符串传递给console.log应该显示如下内容:

    # # # #
     # # # #
    # # # #
     # # # #
    # # # #
     # # # #
    # # # #
     # # # #

我的尝试是下面的评论解释我的逻辑。我接近了,但我永远无法得到上面的模式。我的逻辑怎么了?

//declar empty board
var board = "";
//use outter loop to control rows
for (var y = 1; y < 5; y++) {
  //use innerloop to generate the #'s horizonatlly
  for (var x = 1; x < 5; x++) {
    //if the row is even then put a space in front
    //of the board string and then generate the board
    // with the #'s
    if (y % 2 === 0) {
      board = " " + board;
      board += "#";
    }
    //else generate the board without a space in front
    //of the #'s
    else {
      board += "#";
    }
  }
  //generate a new line 
  board += "'n";
}
console.log(board);

我决定找点乐子,写我自己的解决方案:

var board = "";
var evenRow = "# # # # ";
var oddRow = " # # # #";
for (var i = 0; i < 8; i++) {
  if (i % 2 == 0) board += evenRow + ''n';
  else board += oddRow + ''n';
}
console.log(board);

注意:棋盘的正确方向是右下方的白色方块,与答案的建议输出旋转90度。

解决方案:

// declare size and an empty "board" string
var size = 8;
var board = "";
// Outerloop for rows
for (let i = 1; i <= size; i++) {
  // inner loop for columns
  for (let j = 1; j <= size; j++) {
    if ((i + j) % 2 == 0) { // check if col is even
      board += " ";
    } else { // if col is odd
      board += "#";
    }
  }
  board += "'n"; // jump to next row
}
console.log(board);

我想出了这个实现,我根据所需的网格大小使用循环创建了所需的字符串行,最后使用另一个循环将它们与新行联系以输出最终结果。

//I Came Up With This
const gridSize = 8 ;  //your grid size
var str1 = "" ;  //first line of string  eg. # # # #
var str2 = "" ;  //second line of string eg.# # # #
var str = "" ;   //final string
//making str1 and str2 according to gridSize
for(var i = 0 ; i < gridSize ; i++){
    if(i%2==0){
        str1 += " " ;
        str2 += "#" ;
    }
    else{
        str1 += "#" ;
        str2 += " " ;
    }
}
//concatenating str1 and str2 with new line to final output str.
for(var i = 0 ; i < gridSize ; i++){
    if(i%2==0){
        str += str1+"'n" ;
    }
    else{
        str += str2+"'n" ;
    }
}
//printing final output.
console.log(str);

var x = "";
var y = "";
for (var i = 0; i <= 4; i++) {
  x = "#" + " " + "#" + " " + "#" + " " + "#";
  y = " " + "#" + " " + "#" + " " + "#" + " " + "#";
  console.log(x);
  console.log(y);
}

let size = 8;
let board = "";
for (let y = 0; y < size; y++) {
  for (let x = 0; x < size; x++) {
    if ((x + y) % 2 == 0) {
      board += " ";
    } else {
      board += "#";
    }
  }
  board += "'n";
}
console.log(board);

我的解决方案是:

var size = 8;
var block = '#';
var space = ' ';
for (var i = 1; i <= size; i++) {
  var line = '';
  for (var y = 1; y <= size; y++) {
    if (i % 2) {
      if (y % 2) {
        line = line + space;
      } else {
        line = line + block;
      }
    } else {
      if (y % 2) {
        line = line + block;
      } else {
        line = line + space;
      }
    }
  }
  console.log(line);
}

以上解决方案很好地使用了for循环。让我们来玩一下while循环。

var board = "";
var even = " # # # #";
var odd = "# # # #";
var i = 1;
while (i <= 8) {
  if (i % 2 == 0) {
    console.log(even);
  } else {
    console.log(odd);
  }
  var i = i + 1;
}

for (var i = 0; i < 8; i++) {
  if (i % 2 == 0) {
    console.log("#" + "'t" + "#" + "'t" + "#" + "'t" + "#" + "'t");
  } else console.log("'t" + "#" + "'t" + "#" + "'t" + "#" + "'t" + "#" + "'t");
}


let chess = "";
for(let i = 0; i< 8; i += 1){
    for(let j=0; j < 8; j += 1){
        if((i+j) % 2 == 0){
            chess += "#";
        }
        else{
            chess += " ";
        }
    }
    chess += "'n";
}
console.log(chess);

这是我的解决方案…

var board = "";
//you can also set the size of the grid
var size = 8;
for (var i = 1; i < size; i++) {
  for (var j = 1; j < size; j++) {
    if (i % 2 === 0) {
      board += "#";
      board += " ";
    } else {
      board += " ";
      board += "#";
    };
  };
  board += "'n";
};
console.log(board);

这个简单直接的实现怎么样

function chessBoard(size) {
  for (var i = 0; i < size; i++) {
    if (i % 2 === 0) {
      console.log('' + '# # # #');
    } else {
      console.log(' ' + '# # # #');
    }
  }
}
chessBoard(8);

这很简单…2循环…第一个循环计算列的数量,第二个循环重复"#"每列4次,在里面。距离与"# "是字符之间的距离"#"对方。当列号为奇数时,距离将在"#". 变量"chr"是将这些重复保存到每一列。

var chr = '';
for (var num = 0; num < 8; num++) {
  for (var num_1 = 0; num_1 <= 3; num_1++) {
    if (num % 2 == 0) chr += "#  ";
    else chr += "  #";
  }
  console.log(chr)
  chr = '';
}