Ваша задача - реализовать крестики-нолики на Javascript.
Итоговый код должен обладать следующей функциональностью:
Реализовать игру в крестики нолики со следующими правилами:
- модифицировать файлы кроме
index.js
в проекте запрещено - первым ходит всегда крестик
- ход крестика отображается добавлением к ячейке
cell
классаch
, нолика - классаr
- По нажатию на кнопку "Undo" отменяется предыдущий ход, после этого его можно восстановить нажатием кнопки "Redo". "Глубина" отмены - бесконечна
- Кнопка "Undo" недоступна (disabled), если сейчас нечего отменять
- Кнопка "Redo" недоступна (disabled), если сейчас нечего возвращать
- В случае завершения игры происходит следующее:
- элемент ".won-title" теряет класс "hidden"
- в поле ".won-message" отображается сообщение
Crosses won!
в случае победы крестика,Toes won!
в случае победы нолика,It's a draw!
в случае ничьи - Нажатие на кнопку "Restart game" стартует новую игру без перезагрузки страницы
- "Выигрышные" ячейки получают класс
win
и, в зависимости от направления - классvertical
,horizontal
,diagonal-right
илиdiagonal-left
- Незавершённая игра переживает перезагрузку страницы
- Состояние игры синхронизируется между всеми вкладками браузера - это означает, что выполнив ход на одной вкладке, я должен иметь возможность увидеть его на другой вкладке. Это же относится и к старту новой игры.