Skip to content

coderdlcg/guess

Repository files navigation

version 0.3

##Deployment local

  1. Установить локальный сервер OpenServer или Laragon
  2. git clone https://github.com/langitru/game_guess_number.git guess
  3. cd guess && composer install
  4. настроить домен guess.test
  5. создать БД (MySQL, MariaDB)
  6. копировать .env.example в .env
   APP_URL=http://guess.test

   DB_DATABASE=guess
   DB_USERNAME=root
   DB_PASSWORD=

   BROADCAST_DRIVER=pusher

   PUSHER_APP_ID=1336383
   PUSHER_APP_KEY=4be12eed6f15340348ae
   PUSHER_APP_SECRET=3b0d0c4e61fcdf92df08
   PUSHER_APP_CLUSTER=ap3
  1. php artisan key:generate

  2. php artisan migrate

  3. npm install && npm run dev


Тестовое задание «Игра»

Необходимо реализовать веб-приложение для игры

Вводная информация

Игра «Угадай число». Компьютер загадывает число от 1 до 20, а двое игроков должны его угадать. Игра длится 5 ходов. Выделено 3 уровня сложности реализации тестового задания: easy, normal, hard.

Описание процесса работы приложения

Реализация Easy:

  1. Наличие страницы регистрации и авторизации. Подтверждение регистрации по e-mail не требуется.
  2. Реализовать страницу для подбора игры. Изначально доступна кнопка «Найти игру».
  3. При нажатии «Найти игру» загорается сообщение о поиске лобби и появляется кнопка для отмены поиска. При присоединении к поиску очередного игрока сервер сам объединяет двух игроков в лобби и запускает игру, происходит переход на страницу с игрой. Количество лобби (одновременно играющих пар) не ограничено. Игрок без пары находится на странице ожидания.
  4. На странице игры пользователь вводит число в текстовое поле и нажимает кнопку «Угадать».
  5. В ходе игры должна отображаться таблица с историей предыдущих ходов, состоящая из столбцов: номер хода, загаданное компьютером число, ваш ответ, ответ противника, результат (выиграли/проиграли/ничья).
  6. Выиграет тот, чей ответ максимально ближе к загаданному компьютером числу.
  7. В ходе игры отображается сообщение «Ваш ход» или «Ожидаем противника». А по окончанию игры (после всех 5ти ходов) «Вы выиграли/проиграли/ничья».
  8. Использовать макет из Figma.

Реализация Normal:

  1. Реализация уровня Easy.
  2. Добавить страницу «Журнал матчей», где отображаются история предыдущих игр, а именно: дата, время, ник противника, результат игры.
  3. В ходе игры доступна кнопка «Покинуть игру» приводящая к поражению игрока и победе противника.

Реализация Hard:

  1. Реализация уровня Normal.
  2. После перезагрузки страницы браузера, игра должна быть продолжена.
  3. Если игрок не совершил ход в течении 20 секунд, засчитываем ему проигрыш в данном ходу и переходим к следующему ходу.
  4. Написать docker-compose.yml и при необходимости Dockerfile конфигурации. Приложение должно собираться из исходников и запускаться одной командой «docker-compose up».

Общие требования к приложению для всех уровней сложности

  1. Приложение должно соответствовать принципам ООП.
  2. Реализовать с использованием MVC-паттерна;
  3. Использовать long polling и/или WebSocket для отправки сообщений от сервера к клиенту. Допускается/предполагается использовать готовые библиотеки.
  4. Для хранения журнала матчей использовать базу данных.
  5. Желательно показать приятный интерфейс.
  6. От качества решения продемонстрированного Вами будет зависеть наше предложение.

Результат

  1. Указать реализованный Вами уровень easy, normal или hard.
  2. Ссылка на репозиторий исходного кода bitbucket, github или любой другой.
  3. Краткий отчет о потраченном времени на разработку и обучение.
  4. Дайте пояснение архитектурных решений.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published