• Как перемещать шахматные фигуры с помощью JS?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    На вскидку, я бы сделал как-то так:
    1. Пропишите id для каждой клетки. Так будет проще работать с DOM деревом
    2. Напишите общий class "Фигура". В нем будет свойство указывающее на то, где сейчас находится фигура, и простой метод "Переместить". Этот метод, просто учищает текужую ячейку таблицы и вставляет фигуру в указанную.
    3. Напишите class для каждого типа фигуры. Он наследуется от базового.
    4. В классе конкретной фигуры опишите метод который будет проверять может ли текущая данная фигура, на основе правил игры и текущей позиции, переместится на указанную клетку.
    5. В классе конкретной фигуры опишите метод "Переместить", который будет выполнять проверку (см. предыдущий пунк) после чего вызывать родительский метод "Переместить".



    Почитать:
    1. https://learn.javascript.ru/dom-nodes
    2. https://learn.javascript.ru/basic-dom-node-properties
    3. https://learn.javascript.ru/dom-navigation
    4. https://learn.javascript.ru/searching-elements-dom
    5. https://learn.javascript.ru/classes
    Ответ написан
    Комментировать
  • Как сделать так что бы шахматная фигура по клику перемещалась на другую ячейку?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Можно разделить данные и их отрисовку. Массив «состояния» доски: какая фигура в какой ячейке. Пустая клетка – пустая строка. Клетка с королевой – 'Q'. И функция, которая отрисовывает всю доску, исходя из Состояния.

    Для обозначения фигур использовать буквы из шахматной нотации. King = K, Queen = Q, Bishop = B, Knight = N, Rook = R, pawn = p
    Понадобится словарь, где ключу фигуры соответствует символ для его отображения.

    Каждая ячейка кликабельна. Кнопка в себе хранит координаты X и Y – понадобятся в обработчике клика, общем для всех.
    Хранится переменная для предыдущего. Изначально пуста. Если кликнули по фигуре, а «предыдущая» пуста, значит это Первый клик - выбор фигуры для хода.
    Второй клик должен выбрать другую ячейку, куда поставить выбранную ранее фигуру, или отменить выделение, если Второй раз выбрана та же клетка, что в Первый.

    Ответ написан
    7 комментариев