Есть такой код:
var images = [imgPath + 'wP.png', imgPath + 'wN.png', imgPath + 'wB.png', imgPath + 'wR.png', imgPath + 'wQ.png',
imgPath + 'wK.png', imgPath + 'empty.png', imgPath + 'bP.png', imgPath + 'bN.png', imgPath + 'bB.png',
imgPath + 'bR.png', imgPath + 'bQ.png', imgPath + 'bK.png'];
images.forEach(function (item, i, arr)
{
var tmp = item;
arr[i] = new Image(cellWidth, cellHeight);
arr[i].src = tmp;
});
//...
function Cell(figure, cellLitera, cellNumber)
{
this.figure = figure;
this.cellLitera = cellLitera;
this.cellNumber = cellNumber;
this.draw = function()
{
let cellI = this.cellLitera.charCodeAt(0) - 97;
let cellJ = 8 - cellNumber;
ctx.drawImage(images[this.figure], 10 + cellI*cellWidth, 10 + cellJ*cellHeight);
}
}
//...
window.onload = function() {
cells[0][0].figure = BLACK + ROOK;
cells[1][0].figure = BLACK + KNIGHT;
//...
cells[6][7].figure = WHITE + KNIGHT;
cells[7][7].figure = WHITE + ROOK;
for (let i = 0; i < 8; ++i)
{
cells[i][1].figure = BLACK + PAWN;
cells[i][6].figure = WHITE + PAWN;
}
for (let i = 0; i < 8; ++i)
{
for (let j = 0; j < 2; ++j)
{
cells[i][j].draw();
}
for (let j = 6; j < 8; ++j)
{
cells[i][j].draw();
}
}
}
В этом случае все шахматные фигуры рисуются.
Но если последний цикл заменить на
for (let i = 0; i < 8; ++i)
{
for (let j = 0; j < 8; ++j)
{
cells[i][j].draw();
}
}
, то вырисовываются только 2 черных фигуры в левом верхнем углу доски.
В чем может быть проблема?