version 0.3
##Deployment local
- Установить локальный сервер OpenServer или Laragon
git clone https://github.com/langitru/game_guess_number.git guesscd guess && composer install- настроить домен guess.test
- создать БД (MySQL, MariaDB)
- копировать
.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
-
php artisan key:generate -
php artisan migrate -
npm install && npm run dev
Необходимо реализовать веб-приложение для игры
Игра «Угадай число». Компьютер загадывает число от 1 до 20, а двое игроков должны его угадать. Игра длится 5 ходов. Выделено 3 уровня сложности реализации тестового задания: easy, normal, hard.
Описание процесса работы приложения
- Наличие страницы регистрации и авторизации. Подтверждение регистрации по e-mail не требуется.
- Реализовать страницу для подбора игры. Изначально доступна кнопка «Найти игру».
- При нажатии «Найти игру» загорается сообщение о поиске лобби и появляется кнопка для отмены поиска. При присоединении к поиску очередного игрока сервер сам объединяет двух игроков в лобби и запускает игру, происходит переход на страницу с игрой. Количество лобби (одновременно играющих пар) не ограничено. Игрок без пары находится на странице ожидания.
- На странице игры пользователь вводит число в текстовое поле и нажимает кнопку «Угадать».
- В ходе игры должна отображаться таблица с историей предыдущих ходов, состоящая из столбцов: номер хода, загаданное компьютером число, ваш ответ, ответ противника, результат (выиграли/проиграли/ничья).
- Выиграет тот, чей ответ максимально ближе к загаданному компьютером числу.
- В ходе игры отображается сообщение «Ваш ход» или «Ожидаем противника». А по окончанию игры (после всех 5ти ходов) «Вы выиграли/проиграли/ничья».
- Использовать макет из Figma.
- Реализация уровня Easy.
- Добавить страницу «Журнал матчей», где отображаются история предыдущих игр, а именно: дата, время, ник противника, результат игры.
- В ходе игры доступна кнопка «Покинуть игру» приводящая к поражению игрока и победе противника.
- Реализация уровня Normal.
- После перезагрузки страницы браузера, игра должна быть продолжена.
- Если игрок не совершил ход в течении 20 секунд, засчитываем ему проигрыш в данном ходу и переходим к следующему ходу.
- Написать docker-compose.yml и при необходимости Dockerfile конфигурации. Приложение должно собираться из исходников и запускаться одной командой «docker-compose up».
Общие требования к приложению для всех уровней сложности
- Приложение должно соответствовать принципам ООП.
- Реализовать с использованием MVC-паттерна;
- Использовать long polling и/или WebSocket для отправки сообщений от сервера к клиенту. Допускается/предполагается использовать готовые библиотеки.
- Для хранения журнала матчей использовать базу данных.
- Желательно показать приятный интерфейс.
- От качества решения продемонстрированного Вами будет зависеть наше предложение.
- Указать реализованный Вами уровень easy, normal или hard.
- Ссылка на репозиторий исходного кода bitbucket, github или любой другой.
- Краткий отчет о потраченном времени на разработку и обучение.
- Дайте пояснение архитектурных решений.