Skip to content

firefirefile/Connect-Four-Game

Repository files navigation

Connect Four game

Это игра 4 в ряд, c возможностью переключать режимы: есть PvP (на два игрока), PvC (игрок против компьютера), CvC (компьютер против компьютера). Сделано на Vite с использованием React и TS

Каждый режим игры умеет анимировать ходы, менять игроков, а также проверять победу (и анимировать выигрышные клетки) или ничью

На что обращать внимание при ревью

  • "Умный" ИИ для компьютерных игроков - умеет не просто сделать рандомный ход: функция computerMove также проверяет, есть ли победа у текущего игрока (и делает выигрышный ход если да), есть ли победа у оппонента (и делает ход туда чтобы не дать победить). В остальных случаях в 40% делает ходы в центре поля (там больше выигрышных комбинаций) или делает рандомный ход

  • Система ставок и баланса: в случае выигрыша ставка возвращается в размере x2, в случае ничьей - возвращается. Если баланс меньше 100, то режим PvC становится недоступен: пишу там, что заработать поинты можно будет в режиме против компьютера (200 поинтов за игру с компьютером начисляются в любом случае)

  • Есть кнопки Undo/Redo, которые работают во всех режимах и не ломают игру)) - в случае если мы отменяем выигрышный ход, то это состояние обновляется и флаг выигрыша не показывается (работает и в другую сторону - если тыкаем на redo выгрышного хода, то показывается выигрыш)

  • Есть автосохранение в LocalStorage (сохраняется и баланс, и игровое поле) и восстановление состояния из него в случае перезагрузки

  • Для второго задания (функции validator) - сделал отдельный экран: перейти в него получится, если на экране результатов матча нажать на кнопку "Validate this match". Окно с валидатором показывает результат игры (в случае победы показывает выигрышные клетки), а также показывает ходы обоих игроков

  • Вместо кучи useState использую один useReducer

Как запустить

  • Весь проект собрал в отдельный файл - находится в папке dist. Запустить получится, если:
npm run preview
  • Для разработки:
npm install
npm run dev

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors