>if(x ===0|| x ===(this.width +1)|| y ===0|| y ==(this.height +1)){
Не понимаю, зачем так сложно делать? Зачем лишние ячейки? Костыли какие-то? Тогда лучше сделать правильно.
> Field.prototype.getCell
> Field.prototype.getCoorByCell
Тут копипаста, надо избавиться от нее. Алсо, я подумал, а не проще при создании ячейки передавать ей ее координаты? Тогда цикл вообще не нужен будет.
> pos1, pos2
Неудобные названия, лучше x/y или posX/posY
>if(cell.hasMine ===true){
> td.innerHTML ='<span>☢</span>';
Не очень правильно с точки зр. ООП. Почему поле лезет внутрь ячейки? Надо просто написать
cell.showMine();
Если в клетке 0 мин, надо автоматически открывать соседние.
Черные цифры плохо видны на темном фоне.
В окошке о проигрыше надо кнопку перезапуска игры.
Надо бы сделать проверку на выигрыш.
Окно удобнее создавать не через кучу createElement, а из html-шаблона. Шаблон можно хранить прямо в HTML: http://l...content-available-to-author-only...t.ru/templates#хранение-шаблона-в-документе
> if (x === 0 || x === (this.width + 1) || y === 0 || y == (this.height + 1)) {
Не понимаю, зачем так сложно делать? Зачем лишние ячейки? Костыли какие-то? Тогда лучше сделать правильно.
> Field.prototype.getCell
> Field.prototype.getCoorByCell
Тут копипаста, надо избавиться от нее. Алсо, я подумал, а не проще при создании ячейки передавать ей ее координаты? Тогда цикл вообще не нужен будет.
> pos1, pos2
Неудобные названия, лучше x/y или posX/posY
> if (cell.hasMine === true) {
> td.innerHTML = '<span>☢</span>';
Не очень правильно с точки зр. ООП. Почему поле лезет внутрь ячейки? Надо просто написать
cell.showMine();
Если в клетке 0 мин, надо автоматически открывать соседние.
Черные цифры плохо видны на темном фоне.
В окошке о проигрыше надо кнопку перезапуска игры.
Надо бы сделать проверку на выигрыш.
Окно удобнее создавать не через кучу createElement, а из html-шаблона. Шаблон можно хранить прямо в HTML: http://l...content-available-to-author-only...t.ru/templates#хранение-шаблона-в-документе