Javascript Игра «Уголки»



Введение Ээта реализация игры «Углы» на JavaScript, созданный для образовательных целей.

Геймплей заключается в том, чтобы передвигать свои фишки из одного угла игрового поля в другой (по определенным правилам) быстрее противника.

Эта реализация имеет четыре режима: игра с компьютерными игроками, игра с компьютерным игроком, многопользовательская игра на одном компьютере и многопользовательская игра по сети.



Описание игры
Интерфейс состоит из трех частей: окна сообщений, панели настроек и игрового поля.

На игровом поле, помимо самого фона (дива с фоном), есть еще два слоя элементов: слой элементов-фишек и слой элементов-ячеек, которые образуют сетку 8*8 и нужны для взаимодействовать с игровым процессом.

В окне сообщений отображается информация о текущем прогрессе и, когда игра заканчивается, ее результат. Панель настроек позволяет выбирать режимы и опции игры.

В режиме «Игра ИИ против самого себя» компьютер играет сам с собой, используя разработанный мной алгоритм.

Поскольку здесь нет элементов случайности, результат всегда один и тот же.

Создан для демонстрации самой игры и работы алгоритма ИИ.

Режим «Игра против ИИ» позволяет вам играть против компьютера.

Вы можете выбрать цвет фишек.

Стоит помнить, что первыми ходят белые.

«Игра в многопользовательском режиме» — здесь вы можете играть вдвоем на одном компьютере.

Режим «Игра по сети» позволяет играть по сети.

Вы можете создать игру или подключиться к уже созданной.

При запуске новой игры генерируется номер, с помощью которого другой игрок может подключиться, введя идентификатор в поле, которое появляется при нажатии на «Подключиться к игре».

Также стоит отметить, что один ход ограничен 20 минутами.

Геймплей, как было отмечено ранее, заключается в перемещении фишек из одного угла игрового поля в другой.

Фигуры, которые могут сделать ход при наведении на них указателя мыши, отмечены зеленой рамкой.

Активные фишки выделены красной рамкой.

Доступные ходы отмечены синим цветом.

Чтобы снять активный режим с фишки, нужно нажать на нее.

Игра закончится, когда один из игроков займет своими фишками весь противоположный угол.



Описание алгоритма, который используется для расчета ходов одной фишки
Возможные ходы:
  • Один шаг (по вертикали или горизонтали) на соседнюю свободную клетку;
  • Цепочка прыжков.

    Один прыжок можно совершить «через» другую фигуру на свободную клетку (по горизонтали или вертикали), но нельзя вернуться назад, то есть «перепрыгнуть» на клетку, оставленную в предыдущем прыжке.

    Цепочка заканчивается, когда не остается ячеек для «прыжка».

То есть задача — найти все варианты ходов («шагов» и «прыжков») для одной фишки.

Игровое поле определяется следующим образом:

JavaScript игра «Уголки»

Этот алгоритм работает на нем.

Он начинается с вызова функции, которая принимает на вход координаты токена (i, j).

Эта функция также использует глобальный массив (CORNERS.chips, на блок-схеме просто CHIPS), содержащий информацию о положении фишек на игровом поле.

Например, запись типа CORNERS.chips[5][1] = 1 означает, что в позиции i = 5 и j = 1 находится белая фишка.

Если бы значение было -1, это означало бы, что есть черная фишка.

там.

А значение 0 указывает на свободную ячейку в поле.

То есть элементы этого массива имеют следующие значения:

  • 1 – в этой позиции стоит белая фишка;
  • (-1) – фишка черных здесь;
  • 0 – здесь есть свободная ячейка.

Итак, этот алгоритм, используя эти данные, должен сформировать массив, содержащий информацию обо всех ходах (список координат ячеек поля).

Структура этого массива: result[m][k] = x, где m — номер пары координат, k — 0 — координата i или 1 — координата j, x — значение соответствующей координаты.

В процессе используются еще два вспомогательных массива: пройденный и патч.

Они нужны для расчета цепочек прыжков.

В пройденные заносятся координаты рассчитанных ячеек, то есть тех ячеек, которые уже не нужно вводить в массив результатов.

Массив patch содержит координаты ячеек поля, которые необходимо изучить для поиска новых вариантов ходов.

Ну а сам поиск заключается в последовательном обходе направлений возможного хода этой фишки, поиске ячеек поля для «шагов» и «прыжков», а затем проверке всех ячеек для «прыжков» на наличие новых ходов.

.

Блок-схема алгоритма

JavaScript игра «Уголки»



Заключение
Это был мой проект по изучению JavaScript. Ошибок и недочетов много, но как-то работает. Можно было бы описать алгоритм, которому следует компьютерный игрок, но, может быть, в следующий раз.

Код этого приложения доступен в репозитории.

GitHub Теги: #JavaScript #Алгоритмы #JavaScript #Алгоритмы

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.