Введение 3
1 Анализ задания на выпускную квалификационную работу 4
1.1 Анализ игрового процесса 4
1.2 Анализ вариантов правил игры 5
1.3 Анализ существующих систем 6
1.4 Разработка спецификации требований задания на игру «Быки и Коровы» . 8
1.4.1 Спецификация требований клиента 8
1.4.2 Спецификация требований к серверу 13
1.5 Выбор инструментов 14
1.6 Выводы по главе 14
2 Проектирование 16
2.1 Серверная часть 16
2.1.1 Логическое проектирование структуры базы данных 16
2.1.2 Физическое проектирование базы данных 17
2.1.3 Архитектура приложения 18
2.2 Клиентская часть 19
2.2.1 Алгоритм работы приложения 19
2.2.2 Архитектура приложения 20
2.3 Выводы по главе 22
3 Реализация и тестирование 23
3.1 Реализация 23
3.1.1 Серверная часть 23
3.1.2 База данных 24
3.2 Инструкция разработчика 25
3.3 Тестирование 26
3.4 Выводы по главе 33
Заключение 34
Список сокращений 35
Список использованных источников 36
В логическую игру «Быки и коровы» традиционно играет два человека, при этом один из них загадывает какую-либо последовательность, а второй пытается ее отгадать. После каждой попытки отгадывающий получает подсказки, отражающие отличительные особенности своего варианта от правильного. Существует множество классических вариантов этой игры, которые отличаются типом последовательности и правилами формирования подсказок. Могут загадываться числа, слова, цветные фишки и так далее.
Цель работы - создание клиент-серверной версии этой игры с мобильным клиентским приложением, совмещающей различные варианты игры и наиболее удачные идеи существующих решений, а также обладающей специфическими особенностями, обеспечивающими конкурентные преимущества перед аналогами. Серверная часть приложения должна обеспечивать гибкость, позволяющую с минимальными издержками добавлять в систему новые режимы игры.
Структура работы отражает решаемые задачи:
- в первой главе приведены:
а) обзор известных вариантов правил этой игры;
б) анализ сильных и слабых сторон реализаций;
в) анализ реализаций с открытым исходным кодом на предмет возможности его заимствования;
г) спецификация требований к разрабатываемой системе, учитывающая результаты проведенных анализов;
- во второй главе работы разрабатывается: архитектура системы, структура базы данных, алгоритм формирования числа или слова требуемой формы;
- в третьей главе описаны особенности реализации серверной и клиентской частей, а также приведены инструкции по сборке и развертыванию системы.
В результате проделанной работы выполнены следующие задачи:
- выполнен анализ существующих систем;
- составлена спецификация требований и произведен выбор средств разработки;
- выполнено проектирование архитектуры клиентской и серверной частей;
- выполнена программная реализация клиентской и серверной частей.
Разработанное приложение имеет несколько недостатков, в частности можно реализовать другие режимы игры, не связанные с буквенными или числовыми символами
1. The Computer As Master Mind [Электронный ресурс]: - Режим
доступа: https: //www.cs.uni.edu/~wallingf/teaching/cs3530/resources/knuth-
mastermind.pdf.
2. Быки и коровы [1987 Гик. Е.Я. - Занимательные математические
игры] [Электронный ресурс]: - Режим доступа:
http://mathemlib.ru/books/item/f00/s00/z0000020/st003.shtml.
3. Информационный анализ игры «Быки и коровы» [Электронный ресурс]: - Режим доступа:https://cyberleninka.ru/article/n/informatsionnyy-analiz-igry-byki-i-korovy/viewer.
4. GitHub [Электронный ресурс]: - Режим доступа:https://github.com.
5. Google Play [Электронный ресурс]: - Режим доступа:
https://play.google.com/store.
6. Android Studio [Электронный ресурс]: - Режим доступа:
https://developer.android.com/studio.
7. Основы UML - диаграммы использования (use-case) [Электронный ресурс]: - Режим доступа:https://pro-prof.com/archives/2594.
8. Графический клиент MySQL Workbench [Электронный ресурс]: - Режим доступа:https://metanit.com/sql/mysql/1.3.php.
9. Design Patterns - Facade Pattern [Электронный ресурс]: - Режим доступа: https://www.tutorialspoint.com/design_pattern/facade_pattern.htm.
10. Android-асинхронный Http-клиент - Android-клиент для асинхронного сетевого запроса [Электронный ресурс]: - Режим доступа: https://russianblogs.com/article/2449665681/.
11. Пример работы с Json Simple в Java: парсинг и создание JSON [Электронный ресурс]: - Режим доступа:https://javadevblog.com/primer-raboty-s-json-simple-v-java-parsing-i-sozdanie-json.html.
12. Yandex.Cloud [Электронный ресурс]: - Режим доступа: https://cloud.yandex.ru.
13. Secure Shell - Wikipedia [Электронный ресурс]: - Режим доступа: https://en.wikipedia.org/wiki/Secure_Shell.
14. JDK Builds from Oracle [Электронный ресурс]: - Режим доступа: https: //jdk.j ava.net.
15. Руководство пользователя Apache Tomcat 9 [Электронный ресурс]: - Режим доступа:https://russianblogs.com/article/3407920577/.
16. MySQL [Электронный ресурс]: - Режим доступа:
https://www.mysql.com/.
17. GitHub [Электронный ресурс]: bulls_cows_server - Режим доступа: https://github.com/Octaine17/bulls_cows_server
18. Руководство по Android Studio для начинающих [Электронный ресурс]: - Режим доступа:https://android.inform.dick/rukovodstvo-po-android-studio-dlja-nachinajushhih/.
19. GitHub [Электронный ресурс]: - Режим доступа:
https://github.com/Octaine17/bulls_and_cows/.
20. GitHub [Электронный ресурс]: - Режим доступа:
https://github.com/Octaine17/bulls_cows_server_source/.