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

No packages published

Languages

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