Javascript 我将如何更改此代码,使其具有5 x 4网格?

Javascript 我将如何更改此代码,使其具有5 x 4网格?,javascript,Javascript,那么,我如何使代码成为一个5 x 4的网格,如下所示。 我我目前得到一个5 x 5的网格,但未定义 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 感谢julien.giband对代码的帮助 //Grid size: result will be n*n cells const GRID_SIZE = 5; const grid = ["0", "0", "0", "0", "0&quo

那么,我如何使代码成为一个5 x 4的网格,如下所示。 我我目前得到一个5 x 5的网格,但未定义

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

感谢julien.giband对代码的帮助

  //Grid size: result will be n*n cells
const GRID_SIZE = 5;
const grid = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"];
// Ship Locations
const shipLocations = ["3", "9", "15"];
let guess; //Entered value
let count = 0; //counter for rounds
do { //We'll loop indefintely until the user clicks cancel on prompt

  //Construct prompt using string template (multiline)
  const prpt = `Round #${++count}
${printGrid()}
Enter a Number Between 0-19`;
  guess = prompt(prpt);
  if (!guess && guess !== 0)
    break; //Stop when cancel was clicked
  
  const hit = shipLocations.indexOf(guess) >= 0;
  console.log(`At round ${count}, cell ${guess} is a ${hit ? 'hit': 'miss'}`);
  grid[guess] = hit ? '1' : 'X';
} while (guess || guess === 0); //Must have an exit condition

/** Pretty-print the grid **/
function printGrid() {
  let res = "";
  for (let r = 0; r < GRID_SIZE; r++) {
    let srow = "";
    for (let c = 0; c < GRID_SIZE; c++) {
      srow += " " + grid[r * GRID_SIZE + c];
    }
    res += srow.substr(1) + '\n';
  }
  return res;
}
//网格大小:结果将是n*n个单元格
常数网格大小=5;
常量网格=[“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”、“0”];
//船舶位置
常数船位=[“3”、“9”、“15”];
让我们猜猜看//输入值
让计数=0//子弹计数器
执行{//我们将不确定地循环,直到用户在提示下单击“取消”
//使用字符串模板构造提示(多行)
const prpt=`Round#${++count}
${printGrid()}
输入一个介于0-19`之间的数字;
猜测=提示(prpt);
如果(!guess&&guess!==0)
break;//单击“取消”时停止
const hit=shipplocations.indexOf(guess)>=0;
log(`At round${count},cell${guess}是一个${hit?'hit':'miss'}`);
网格[猜测]=命中?'1':'X';
}while(guess | | guess==0)//必须有退出条件
/**漂亮的打印网格**/
函数printGrid(){
让res=“”;
对于(设r=0;r
在“打印网格”中,行(r)和列(c)都循环到5(网格大小)。如果需要5x4网格,则行和列需要不同的大小值:

行网格大小=4;
列网格大小=5;
并更改循环:

for(让r=0;r
为了创建任意N*N的网格,我创建了一个动态数组创建函数

函数genArray(N){
返回数组。from(数组(N),(i)=>“0”)
}
函数createDynamicGrid(行、列){
const rows=genArray(行)
返回rows.map((i)=>genArray(列))
} 

console.log(createDynamicGrid(2,2))
而不是
GRID\u SIZE
您应该使用两个变量
GRID\u ROW\u SIZE
GRID\u COLUMN\u SIZE
并替换for loop中的变量。for循环都使用
GRID\u SIZE
迭代,您需要使用5和4。