Было несколько проблем с вашим кодом:
- При создании двумерного массива в JavaScript его необходимо инициализировать, например, выполнив
gameArray[rows] = [];
в строках l oop . - Вам не хватало переменной
ship
. (Я установил его на 3.)
Если вы хотите простой способ отладки подобных проблем, попробуйте открыть Инструменты разработчика, используя сочетание клавиш Control+Shift+I
в Firefox или Chrome чтобы открыть их. Должна быть вкладка Консоль, на которой будут отображаться ошибки.
Вам все еще не хватает метода shipLocator (), но я не могу предсказать, что там должно быть go, поэтому я просто позволяю вам знать.
var gameArray=[];
var empty = 0;
var hit = 1;
var miss = 2;
var ship = 3;
var numShips =5;
initGame(10);
dispgameArray();
shipLocator();
dispgameArray();
dispBoard();
document.getElementById("part2").innerHTML = "<img src='water.png' alt='1' height='100' width='100'>";
function initGame(n){
alert("initGame");
var rows=0;
var cols=0;
for (rows=0; rows<n; rows++){
gameArray[rows] = [];
for(cols=0; cols<n; cols++){
gameArray[rows][cols] = empty;
}
}
}
function isOdd(num) {
if (num%2 === 0){
return true;
}
else {
return false;
}
}
function dispgameArray(){
var rows=0;
var cols=0;
var html = "";
alert(gameArray[rows].length);
for (rows=0; rows < gameArray.length; rows++){
for(cols=0; cols<gameArray[rows].length; cols++){
if (gameArray[rows][cols] == empty) {
if (isOdd(rows)){
html = html + "X"
}
else
{html = html + "X "}
}
if (gameArray[rows][cols] == ship){
if (isOdd(rows)){
html = html + "&"
}
else
{html = html + "& "}
}
if (gameArray[rows][cols] == miss){
if (isOdd(rows)){
html = html + "M"
}
else
{html = html + "M "}
}
if (gameArray[rows][cols] == hit){
if (isOdd(rows)){
html = html + "*"
}
else
{html = html + "* "}
}
}
}
document.getElementById("part3").innerHTML = html;
}
<div id="part3"></div>