--- tags: .net education --- # Movik ![Movik game](https://i.imgur.com/DZmnm1i.png) Онлайн-викторина, посвященная тематике кино. Пользователи присоединяются к игре и в режиме реального времени отвечают на вопросы, которые имеют ограничение по времени. # Структура системы Система Movik состоит из 3х компонентов: 1. Authorization server Компонент, в котором осуществляется логин, регистрация и управлением аккаунтов пользователя. 2. Admin tool Приложения для админов, которые позволяет создавать и настраивать игровые сесси, а также их содержание. 3. Game server Приложение, в котором осуществляется игровой процесс # Основной флоу системы При попытке пользователя зайти на админ панель или в игру, пользователя перенаправляет на auth server для авторизации, где он может залогиниться, либо же создать аккаунт, после чего будет перенаправлен на тот сайт, куда он хотел попасть. ![Sign In page](https://i.imgur.com/VZ4C50j.png) При наличии роли "Admin" или "Game admin" пользователь может зайти в Admin tool, где он может создать игру. Для создания игры необходимо указать ее название, сколько времени отведено на то, чтобы присоедениться к ней, максимально допустимое кол-во игроков и собственно вопросы. Вопрос может иметь несколько правильных вариантов ответа. При указании варианта ответа пользователь может ввести текст ответа либо выбрать фильм из списка, который предварительно нужно создать на соответствующей странице приложения. ![Create game](https://i.imgur.com/GDxnYIg.png) После того, как игра создана, пользователь с ролью "Admin" или "Player" может зайти в Game server и поиграть в нее. Если игра еще активна, то пользователь видит ее на главной странице в разделе "Live games". Имеется возможность присоедениться к игре как зритель, либо как игрок, если игра еще не начата и есть вакантные места в списке игроков. ![Games dashboard](https://i.imgur.com/pPX1tQs.png) После того, как все игроки присоеденились, либо время на подключение истекло, игра начинается и игроки должны ответить правильно на появившийся перед ними вопрос. Тот, кто сделал это первым, считается победителем раунда и получает +1 балл, игра переходит к следующему вопросу до последнего. В конце игры показывается турнирная таблица и сессия считается оконченной. ![Movik game](https://i.imgur.com/DZmnm1i.png) Пользователь может посмотреть результаты своих предыдущих игр, перейдя по ссылке в истории, которая находится на главной странице. # Правила игры 1. Присоеденение к игре * Максимально допустимое количество игроков задается админом на admin tool при создании игры. * Присоедениться в качестве игрока можно со страницы dashboard на game server-e. После успешного присоеденения, игрок появляется в списке игроков со счетом "0". * Если при подключении к игре в качестве игрока, места закончились, то пользователь автоматически становится зрителем и отображается в соответствующем списке. * Если время на подключение истекло, то при попытке присоедениться как зритель, пользователь становится зрителем. * Присоедениться как зритель можно так же с dashboard-а. 2. Игровой процесс * Игра начинается после того, как истекло время на подключение, либо все игроки присоеденились. Задается первый вопрос. каждый вопрос имеет индивидуальный таймер доя того, чтобы на него ответить. Показывается текст вопроса и перемешанные случайным образом варианты ответа. * Игроки должны выбрать все правильные варианты ответа. Тот, кто сделает это первым, считается победителем раунда. * После того, как победитель раунда определен, блокируется возможность выбирать варианты ответа, подсвечиваются все правильные ответы и победитель, переход к следующему вопросу. * Если вариант ответа имеет тип "Movie", то отображается обложка фильма. Иначе - текст. * Зрители не могут отвечать на вопросы и получать баллы. * Зрители видят все курсоры игроков с подписью какому игроку он принадлежит. движения и клики отслеживаются, игроки не могут видеть курсоры других игроков. 4. Начисление баллов * Балл начисляется игроку за победу в раунде. * Если игрок нажал на неправильную опцию, то получает минус бал. * После нажатия на опцию, система подсвечивает выбранный вариант зеленым (правильный ответ) или красным (неправильный ответ) цветом. 5. Результаты * После того, как завершен последний раунд, система отображает турнирную таблицу с участниками и счетом, отсортированную по счету descending. * Победителем является игрок(и), набравший(е) наибольшее количество очков. * Игра считается завершенной, пользователи могут вернуться на dashboard при закрытии турнирной таблицы.