My little battleship game not placing ship properly

Viewed 29

I'm a new programmer, just playing with 3d arrays and trying to understand them. My console log looks right -- up until it actually prints the array. I'm not interacting with it properly. Can anyone see what I'm doing wrong here?

var oceanMap = [];

var oceanY = [];

function makeMap(size){
  oceanMap.length = size;
  oceanY.length = size;
  for(let i = 0; i<oceanMap.length; i++)
  oceanMap[i] = oceanY;
}

makeMap(15)
//xxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxx
//xxxxSxxxxxxxxxx
//xxxxSxxxxxxxxxx
//xxxxSxxxxxxxxxx
//xxxxSxxxxxxxxxx
//xxxxSxxxxxxxxxx
//xxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxx
shipCoordX = 7;
shipCoordY = 5;
shipLength = 5;
shipDir = "vertical"
function placeShip(shipX, shipY, shipL, direction)
{
  if(direction = "vertical"){
    var shipYDraw = shipY;
    for(let i = 0; i < shipL; i++){
      oceanMap[shipX][shipYDraw] = 1;
      console.log("ship placed at "+shipX+"X, "+shipYDraw+"Y");
      shipYDraw += 1;
      }
  }
}

placeShip(shipCoordX,shipCoordY,shipLength, shipDir);

function attack(x, y){
  if(oceanMap[x][y]){
    console.log("Hit!");
    oceanMap[x][y] = 0;
  }
  else{
    console.log("Miss!");
  }
}
console.log(oceanMap);
attack(8,5);
Console log is as follows:

ship placed at 7X, 5Y
script.js:62 ship placed at 7X, 6Y
script.js:62 ship placed at 7X, 7Y
script.js:62 ship placed at 7X, 8Y
script.js:62 ship placed at 7X, 9Y
script.js:79 (15) [Array(15), Array(15), Array(15), Array(15), Array(15), Array(15), Array(15), Array(15), Array(15), Array(15), Array(15), Array(15), Array(15), Array(15), Array(15)]0: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]1: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]2: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]3: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]4: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]5: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]6: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]7: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]8: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]9: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]10: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]11: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]12: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]13: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]14: (15) [empty × 5, 0, 1, 1, 1, 1, empty × 5]length: 15[[Prototype]]: Array(0)
script.js:72 Hit!
0 Answers
Related