Test JS v2

HTML

<div id="banner-message">
  <p id="result"></p>
</div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#banner-message {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}

JavaScript

/****************************************************************
Описание
	Вам дается квадратная сетка с обычными `.` и заблокированными `X` ячейками. 
  Ваша игровая фигура может перемещаться по любой строке или столбцу или диагонали, пока не достигнет края сетки или заблокированной ячейки. 
  Учитывая сетку, начальную и конечную позиции, постройте кратчайший путь, чтобы добраться до конечной позиции.

Например
	Дана сетка:
  .X.
  .X.
  ...

  Система координаты для данной сетки:
  0.0 0.1 0.2
  1.0 1.1	1.2
  2.0	2.1	2.2

  Начальна позиция 2.1 (отсчет идет с верхнего левого края сетки 0.0)
  Конечная позиция 0.2

  Путь движения между начальной и конечной точкой: (2.1) -> (1.2) -> (0.2)
  Ответ: [{x:2, y:1}, {x:1, y:2}, {x:0, y:2}]

	Задача
  	Завершите выполнение функции в редакторе. Функция должена вывести массив объектов координат которые обеспечивают минимальное количество шагов для перехода от начальной позиции к конечной и порядок массива соответвует движения по координатам.  

  Ограничения
  	Длина сетки > 1 и < 100
    Координата начальной и конечной точки входит в предоставленную сетку.
    Задача должна быть решена с использованием ООП
  	
****************************************************************/

function runner(gridList, startX, startY, endX, endY) {
		      
      
      class Validate {
        constructor(gridList, startX, startY, endX, endY) {
          this.gridList = gridList;
          this.startX = startX;
          this.startY = startY;
          this.endX = endX;
          this.endY = endY;
          this.gridLength = gridList.length;
        }

        checkLength(item){
          if (item < 2 || item > 99) return false;
          else return true;
        }
        
        checkArr(){
          if (this.checkLength(this.gridLength)) {
            for (let i = 0; i < this.gridLength; i++) {
              if (this.gridLength !== this.gridList[i].length) return false;
              if (!this.checkLength(this.gridList[i].length))...