JavaScript. Учебник начального уровня - DarkGoodWIN 7 стр.


          var n = this.intRand(this.rowCount * this.colCount‑1);

          if (res[n] != 1)

          {

            res[n] = 1;

            mines--;

}

}

        return res;

}

      this.colCount = aColCount;

      this.rowCount = aRowCount;

      this.minesCount = aMinesCount;

      this.mines = this.fillMines();

}

    function initTable()

    {

      var mines = new minesClass(10, 10, 10);

      var tbl = document.getElementById(«tbl»);

      for (var i = 0; i < mines.rowCount; i++)

      {

       var row = tbl.insertRow(i);

       for(var j = 0; j < mines.colCount; j++)

       {

         var cell = row.insertCell(j);

         if (mines.mines[i * mines.rowCount + j] == 1)

           cell.innerHTML = '*'

         else

           cell.innerHTML = '.';

}

}

}

  script>

  <body onLoad = initTable();>

    <table ID = «tbl» BORDER = 2 width = 80% height = 80%>

    table>

body>

html>

Короче и понятнее, ничего лишнего. Сразу видно, что к чему относится. Представте, что у вас в программе есть таблица для игры mines и одновременно есть таблица для игры в точки. Довольно трудно будет сказать в этом случае, что значит переменная rowCount. А вот если написано mines.rowCount, сразу всё понятно.

Перейдём к функции minesClass. Это по сути и есть наш новый класс. В JavaScript класс — это просто функция, а чтобы создать новый экземпляр классна нужно перед вызовом функции написать слово new.

В этой функции мы инициализируем методы intRand, fillMines, colCount, rowCount, minesCount и mines. В JavaScript методы также могут быть полями. Например, так мы описываем новый метод intRand. По сути переносим его в класс minesClass.

       this.intRand = function(maxVal)

      {

        return Math.floor((maxVal‑1) * Math.random() + 0.5) — 1;

Назад Дальше