Git Product home page Git Product logo

bullsandcows's Introduction

Build Status codecov

Веб приложение BullAndCows (Быки и Коровы) представляет из себя логическую игру. Протестировать игру можно по ссылке

Оглавление

  1. Об игре
  2. Правила
  3. Введение в архитектуру
    1. Диаграмма использования
    2. Логическая схема данных
    3. Физическая схема данных
    4. Руководство пользователя
      1. Регистрация и вход в систему
      2. Создание новой игры
      3. Ввод и отправка данных на сервер
      4. Завершение игры
      5. Возобновление игры
      6. Просмотр истории игр

Об игре

Быки и коровы — логическая игра, в ходе которой за несколько попыток один из игроков должен определить, что задумал другой игрок. Варианты игры могут зависеть от типа отгадываемой последовательности — это могут быть числа, цвета, пиктограммы или слова. После каждой попытки задумавший игрок выставляет «оценку», указывая количество угаданного без совпадения с их позициями (количество «коров») и полных совпадений (количество «быков»). Роли участников игры не равнозначны — угадывающий должен анализировать сделанные попытки и полученные оценки, то есть его роль активна. Его партнёр лишь сравнивает очередной вариант с задуманным и выставляет оценку по формальным правилам, то есть его роль пассивна.

Смотреть подробнее по ссылке.

Правила

В классическом варианте игра рассчитана на двух игроков. Каждый из игроков задумывает и записывает тайное 4-значное число с неповторяющимися цифрами. Игрок, который начинает игру по жребию, делает первую попытку отгадать число. Попытка — это 4-значное число с неповторяющимися цифрами, сообщаемое противнику. Противник сообщает в ответ, сколько цифр угадано без совпадения с их позициями в тайном числе (то есть количество коров) и сколько угадано вплоть до позиции в тайном числе (то есть количество быков). Например:

Задумано тайное число «3219».

Попытка: «2310».

Результат: две «коровы» (две цифры: «2» и «3» — угаданы на неверных позициях) и один «бык» (одна цифра «1» угадана вплоть до позиции).

Игроки делают попытки угадать по очереди. Побеждает тот, кто угадает число первым, при условии, что он не начинал игру. Если же отгадавший начинал игру — его противнику предоставляется последний шанс угадать последовательность.

Данная реализация это игра против компьютера, где игрок вводит комбинации одну за другой, пока не отгадает всю последовательность.

Введение в архитектуру

Игра Быки и Коровы это классическое веб приложение представляющее из себя трех уровневую архитектуру.

Диаграмма использования

Диаграмма вариантов использования (англ. use case diagram) в UML — диаграмма, отражающая отношения между актёрами и прецедентами и являющаяся составной частью модели прецедентов, позволяющей описать систему на концептуальном уровне.

На диаграмме ниже представлен актер Пользователь, который может совершать следующие действия, показанные на изоображении нижею

Use case diagram

Логическая схема данных

Логическая схема данных спроектированна по методологии IDEF1x. В конкретной схеме базы данных используются внешние виды связи такие как многие ко многим. Если говорить более предметно, то отношение таблицы Пользователь к таблице Игра является необязательная, неидентифицирующая. Так же отношение таблицы Игра к таблице Шаг_Игры так же является необязательной, неидентифицирующей. Ниже представлена логическая схема БД.

Logical DB Schema

Физическая схема данных

Текущий проект был построен с использованием двух СУБД Postgres и H2. Физическая схема БД успешно протестированна на той паре СУБД, которые указаны выше по тексту. Физическая схема БД была разработана с использованием ограничений, которые помогают реализовывать целостность базы данных. Ниже представлена физическая схема БД.

PHYSICAL DB Schema

Руководство пользователя

Регистрация и вход в систему

Для регистрации в системе требуется перейти в корневой каталог url '/' или по следующему url '/login' . После перехода на страницу с авторизацией следует назать на вкладку ${Sign up} после чего ввести валидные данные. Следом после перезагрузки страницы после успешной регистрации появится сообщающее об успешном вводе данных. Ниже представлена анимация, которая показывает успешные шаги. SIGN IN AND SIGN UP

Создание новой игры

Зарегистрируйтесь и авторизируйтись в приложении. Далее появится страничка состоящая из трех пунктов ${Resume game} , ${Start new game} , ${View history games} . Если у вас нет начатой игры следует нажать на кнопку ${Start new game} для начала новой игры. Ниже представлена анимация, которая показывает процесс создания новой игры. START NEW GAME

Ввод и отправка данных на сервер

Ввод числа существляется с помощью выдвижных списков содержащих порядковые числа. После успешного выбора следует нажать кнопку ${Send message} . Введеные данные отправятся на сервер, об успешности операции сообщит зеленое уведомление в правом углу страницы и ответное сообщение сервера сообщающее колличество быков и коров в обртаном сообщении. Следует учитывать возможные неудачи отсылки попытки угадать число. При полноценной работе системы существует две основные ощибки ввода сообщения, заключающиеся в повторении однозначных чисел и отсутствии выбора одного или нескольких однозначых чисел. Ниже представлена анимация, которая показывает игровой процесс. PROCESS GAME

Завершение игры

Для завершения игры существует два пути. Первый путь это пройти игру одержав победу. Второй путь это вернуться в главное меню нажав кнопку ${Home} после чего нажать кнопку ${New game} после чего будет создана новая игра с новой загадкой.

Возобновление игры

Чтобы возобновить игру следует перейти домой нажав кнопку ${Home} . После успешного перехода в меню появится кнопка ${Resume game} , нажав на которую пользователь будет перенаправлен к последней незавершеной игре. Ниже представлена анимация, которая показывает возобновление игры. Resume game

Просмотр истории игр

Для просмотра игры следует перейти домой нажав кнопку ${Home} . После успешного перехода в меню появится кнопка ${View game history} , нажав на которую пользователь сможет перейти и посмотреть все завершенные игры и статистику по ним. Так же находясь на страничке с историей пользователю будет доступен рейтинг вычисляющийся по отношению всех завершенных игр к всем выполненым ходам к этим играм. Стоит отметить, что на страничке с историей пользователю доступна информация есть ди у текущего пользователя начатые игры. Ниже представлена анимация, которая показывает переход к страничке с историей и информаций доступной на ней. GAME HISTORY

bullsandcows's People

Contributors

tsukanov-iv avatar

Watchers

James Cloos avatar Tsukanov Ilya Vladimirovich avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.