Всем привет. Продолжаем о шахматах.
Мною был написан класс "пешка" и создано правило движения: - одна клетка вперед. При организации логики, возникла следующая проблема. Нужно было написать универсальный метод/функцию которая бы выполняла ход фигуры. Так же нужна была проверка, можно ли фигуре ходить в заданную клетку, в случае неправильного хода, возвращать фигуру назад.
Рассматривалось несколько вариантов, от создания объекта под каждую фигуру и в свойствах хранить все возможные варианты до создания класса описывающего основные свойства фигуры. Такие как старое местоположение, новое местоположение и метод возвращающий массив с координатами "разрешенных" для хода клеток из старой позиции. На этом варианте я и остановился. Возможно это и ошибочный путь, время покажет.
Вот собственно и код с описанием.
Весь код целиком вы как обычно можете посмотреть на https://github.com/Fariah/chess
Мною был написан класс "пешка" и создано правило движения: - одна клетка вперед. При организации логики, возникла следующая проблема. Нужно было написать универсальный метод/функцию которая бы выполняла ход фигуры. Так же нужна была проверка, можно ли фигуре ходить в заданную клетку, в случае неправильного хода, возвращать фигуру назад.
Рассматривалось несколько вариантов, от создания объекта под каждую фигуру и в свойствах хранить все возможные варианты до создания класса описывающего основные свойства фигуры. Такие как старое местоположение, новое местоположение и метод возвращающий массив с координатами "разрешенных" для хода клеток из старой позиции. На этом варианте я и остановился. Возможно это и ошибочный путь, время покажет.
Вот собственно и код с описанием.
/* * класс пешка, с методом стандартного хода */ var wariorClass = function(old_pos, new_pos) { this.old_pos = old_pos; this.new_pos = new_pos; this.getStdMove = function () { var alfa = this.old_pos[0], num = this.old_pos[1]; return [alfa + ( parseInt(num)+1)]; }; }
Весь код целиком вы как обычно можете посмотреть на https://github.com/Fariah/chess
Комментариев нет:
Отправить комментарий