Skip to content

KarinaSkyeng/react-memo

 
 

Repository files navigation

MVP Карточная игра "Мемо"

В этом репозитории реализован MVP карточкой игры "Мемо" по тех.заданию

Проект задеплоен на gh pages: https://skypro-web-developer.github.io/react-memo/

Разработка

Проект реализован на основе шаблона Create React App.

Как разрабатывать

  • Установите зависимости командой npm install
  • Запустите dev сервер npm start
  • Откройте адрес в браузере

Стек и инструменты

Для стилей в коде используются css modules.

Настроены eslint и prettier. Корректность кода проверяется автоматически перед каждым коммитом с помощью lefthook (аналог husky). Закомитить код, который не проходит проверку eslint не получится.

Доступные команды

npm start

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

Откройте http://localhost:3000 чтобы посмотреть его в браузере.

npm run build

Собирает оптимизированный и минифицированный продакшен билд приложения в папку build. После сборке, приложение готово к деплою.

npm run deploy

Деплоит приложение в github pages. По сути, запускает сборку и коммитит билд в ветку gh-pages.

(!) github pages должен быть включен в настройках репозитория и настроен на ветку gh-pages

npm run lint

Запускает eslint проверку кода, эта же команда запускается перед каждым коммитом. Если не получается закоммитить, попробуйте запустить эту команду и исправить все ошибки и предупреждения.

Счётчик ошибок

В игре реализован счётчик ошибок, который показывает количество оставшихся попыток.

Формат отображения

  • "Осталось попыток: X"

Обоснование выбора

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

Оценка времени работы

  • Инициализация игры: O(n)
    • Игра инициализируется на основе количества карт. Чем больше карт, тем больше времени потребуется для их инициализации.
  • Обработка клика по карте: O(1)
    • Время на обработку клика по карте фиксированное, так как это простое действие — переворот карты.
  • Проверка совпадений: O(1)
    • Проверка совпадения двух карт осуществляется мгновенно, так как это сравнение двух значений.
  • Проверка выигрыша: O(n)
    • Для проверки выигрыша необходимо пройти по всем картам, чтобы убедиться, что все пары найдены.
  • Перемешивание карт: O(n log n)
    • Перемешивание карт реализовано с использованием алгоритма, временная сложность которого составляет O(n log n), что характерно для эффективных алгоритмов сортировки.

About

Карточная игра "Мемо"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 61.3%
  • CSS 31.9%
  • HTML 6.8%