Крестики-Нолики, Часть 3: Отмена/Повтор С Хранилищем Команд

Крестики-нолики, часть 0: Сравнение Svelte и React Крестики-нолики, часть 1: Svelte и Canvas 2D Крестики-нолики, часть 2: Отмена/Повтор с сохранением состояния Крестики-нолики, часть 3: Отмена/Повтор с хранилищем команд Крестики-нолики.

Часть 4. Взаимодействие с серверной частью Flask с использованием HTTP В этой части обсуждается реализация игры «Крестики-нолики» с использованием шаблона «Команда», сохраняющего команды отмены/повтора вместо хранения отдельных состояний, со произвольным доступом к каждому шагу истории игры.

Стартовый код Последняя часть статьи заканчивалась этим кодом: Код для REPL .

Закомментируем весь код, который будет выдавать ошибки при внесении изменений.

Заполним все ячейки игрового поля юнитами: Код для REPL Государственное хранилище Код для RELP Добавлено хранилище состояние .

На игровом поле теперь отображается содержимое хранилища.

состояние .

По умолчанию игровое поле заполнено двойками.

Добавлено отображение статуса в компоненте Приложение .

Командный класс Код для RELP Добавлен класс Команда подать helpers.js .

Сорт История изменено для хранения команд вместо состояний.

Здесь мне не удалось выполнить правильное обновление статуса.

Если кто-нибудь знает, пожалуйста, скажите мне.

И вообще, можно ли так использовать хранилище? состояние ? Перевод прогресса Код для RELP Добавлен запрет на нажатие на уже заполненную ячейку.

В конструкторе класса Команда завершил переезд. Исправлен вывод статуса.

Состояние игрового поля Код для RELP На предыдущих этапах возникали сомнения в правильности использования отдельного хранилища.

состояние , поэтому его удалили, а хранилище состояния игрового поля перенесли в класс История - добавлено поле состояние .

Произвольный доступ Код для RELP Добавлен вывод списка шагов.

Произвольный доступ к любому шагу игры осуществляется путем последовательного выполнения команд «Отменить» или «Повторить» до момента выбора команды.

Определение победителя Код для RELP Победитель определен.

Добавлено хранилище положение дел для отображения статуса.

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

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

Репозиторий на GitHub https://github.com/nomhoi/tic-tac-toe-part3 Установка игры на локальный компьютер:

   

git clone https://github.com/nomhoi/tic-tac-toe-part3.git cd tic-tac-toe-part3 npm install npm run dev

Запустите игру в браузере по адресу: http://localhost:5000/ .

Теги: #программирование #Логические игры #JavaScript #дизайн и рефакторинг #svelte #SvelteJS #javascipt #javascipt
Вместе с данным постом часто просматривают: