Игра "Цепочка слов"
Заказать уникальную курсовую работу- 25 25 страниц
- 8 + 8 источников
- Добавлена 25.12.2023
- Содержание
- Часть работы
- Список литературы
Вариант задания 3
Введение 4
1. Теоретическое описание задачи и методов, согласно варианту задания 6
2. Программная реализация 10
3. Руководство пользователя программы 15
Заключение 19
Список использованной литературы 20
From = instance.nouns[firstWordIdx];gameTask.chainVariant.Add(gameTask.From);do {string p1 = gameTask.chainVariant[gameTask.chainVariant.Count - 1];intnextIdx = rnd.Next(countWords);if (instance.nouns[nextIdx].Length == wordLen) {if (getDiff(p1, instance.nouns[nextIdx]) == 1) {bool unique = true;for (inti = 0; i < gameTask.chainVariant.Count; i++) {if (gameTask.chainVariant[i].Equals(instance.nouns[nextIdx])){ unique = false;break; } }if(!unique)continue;gameTask.chainVariant.Add(instance.nouns[nextIdx]);if (gameTask.chainVariant.Count == maxLen) {gameTask.To = gameTask.chainVariant[gameTask.chainVariant.Count - 1];returngameTask; } } } } while (System.DateTime.Now.Ticks < attemptCount); } } while (System.DateTime.Now.Ticks < attemptCount);if (gameTask != null) {if (gameTask.chainVariant.Count > 2) {gameTask.To = gameTask.chainVariant[gameTask.chainVariant.Count - 1];returngameTask; } }returnnull; } }}Далееперейдем к разработке интерфейса игры, форма главного окна приложения приведена ниже.Рисунок 3 Стартовое окно приложенияОсновная форма игры, включающая задание на игру, поле для ввода очередного слова и списка пользователя, показана на рисунке ниже.Рисунок 4 Основное окно игрыЕсли пользователь затрудняется в вводе слова, ему формируется подсказка:Рисунок 5 Подсказка пользователюРассмотрим код, который использует ранее разработанный класс GenerateTaskдля генерации задачи:using System;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespacegame_chain_words{publicpartialclassFormGame : Form {GameTaskgt = null;publicFormGame() {InitializeComponent(); }privatevoid textBox1_TextChanged(object sender, EventArgs e) { }privatevoidFormGame_Load(object sender, EventArgs e) {gt = GenerateTask.generate(GameSettings.MaxWordCount);if (gt == null) {MessageBox.Show("Не удалось сгенерировать игру, попробуйте снова");this.Close();return; }this.labelFrom.Text = gt.From;this.labelTo.Text = gt.To;this.textBoxWord.Text = String.Empty;this.listBoxChain.Items.Clear();this.bAddWord.Enabled = true; }privatevoidbuttonHelp_Click(object sender, EventArgs e) {string text = "";for (inti = 0; i < this.gt.chainVariant.Count; i++) { text += this.gt.chainVariant[i] + '\n'; }MessageBox.Show(text); }privatevoidbAddWord_Click(object sender, EventArgs e) {stringpWord = this.gt.From;if (this.listBoxChain.Items.Count > 0) {pWord = this.listBoxChain.Items[this.listBoxChain.Items.Count - 1].ToString(); }stringtryWord = this.textBoxWord.Text.Trim().ToLower();if(!GenerateTask.exist(tryWord)) {MessageBox.Show("Слово не занесено в базу данных существительных русского языка использующуюся в программе.");return; }if (1 == GenerateTask.getDiff(pWord, tryWord)) {if (tryWord.Equals(this.gt.To)) {MessageBox.Show("Вывыиграли!");this.bAddWord.Enabled = false; }else {this.listBoxChain.Items.Add(tryWord);this.textBoxWord.Text = String.Empty;} }else {MessageBox.Show("Слово должно отличаться не более чем на одну букву и совпадать по длине."); } } }}Как видно по листингу, при загрузке формы генерируется задача, и выводятся значения в соответствующие поля формы. Обработчик кнопки «Добавить» выполняет проверку наличия вводимого слова, и, если оно подходит под решение задачи, добавляет его в список справа.Руководство пользователя программыЗапуск программы осуществляется путем запуска исполняемого файла game_chain_words.exe.Рисунок 6Далее пользователь может изменить размерность слов, которые генерируется по условиям игры.Рисунок 7Пользователь может подготовится к выполнению программы, нажав на кнопку «Тренировка» (рисунок 8). Далее пользователь вводит слово, и программа находит и выводит списокметаграмм.Рисунок 8По кнопке «Запуск» осуществляется старт игры. При этом генерируется случайным образом цепочка слов, далее пользователю предлагается самостоятельно сформировать цепочку.Если алгоритм не в состоянии сгенерировать игру за лимит времени (10 секунд), выдается сообщение пользователю.Рисунок 9В случае успешной генерации игры выдается следующее окно:Рисунок 9Просмотрим подсказку по нажатию на «Подсказка»Рисунок 10Пользователь вводит по очереди слова в поле над кнопкой «Добавить»Рисунок 11Завершение игры выполняется при вводе последнего слова.Если введенное слово не существует, выдается информационное сообщение пользователю.Рисунок 12ЗаключениеВ результате выполнения курсовойработы было произведено исследование задачи «Цепочка слов».В процессе выполнения курсовой работы в соответствии с целью были решены следующие задачи:Выполнен анализ правил игрыРазработан алгоритм решенияВыполнено проектирование архитектуры приложенияВыполнена программная реализацияПроизведено тестирование приложенияСписок использованной литературы1. ПаносЛуридас. Алгоритмы для начинающих: теория и практика для разработчика. – Москва: Эксмо, 2018. - 608 с.2.Сазанова, Екатерина Владимировна. Языки программирования : сборник лабораторных работ / Е.В. Сазанова, В.В. Анисимов. – Хабаровск : Изд-во ДВГУПС, 2021. – 86 с. : ил.3.Сазанова, Екатерина Владимировна. Технологии и методы программирования : сборник лабораторных работ / Е.В. Сазанова, В.В. Анисимов. – Хабаровск : Изд-во ДВГУПС, 2020. – 92 с. : ил.4. Сайт о программировании [Электронный ресурс] – Режим доступа:https://metanit.com (дата обращения: 15.10.2022).5. Троелсен, Э. Язык программирования С# 5.0 и платформа .NET 4.5 / Э. Троелсен; Пер. с англ. Ю.Н. Артеменко. — М.: Вильямс, 2016. — 1312 c.6. Хейлсберг, А. Язык программирования C#. Классика Computers Science / А. Хейлсберг, М. Торгерсен, С. Вилтамут. — СПб.: Питер, 2016. — 784 c.7. Рихтер, Дж. CLR via C#. Программирование на платформе Microsoft. NET Framework 4.5 на языке C# / Дж. Рихтер. - СПб.: Питер, 2018. - 351 c.8. Гриффитс, И. Программирование на C# 5.0 / И. Гриффитс. - М.: ЭКСМО, 2016. - 208 c.
1. Панос Луридас. Алгоритмы для начинающих: теория и практика для разработчика. – Москва: Эксмо, 2018. - 608 с.
2. Сазанова, Екатерина Владимировна. Языки программирования : сборник лабораторных работ / Е.В. Сазанова, В.В. Анисимов. – Хабаровск : Изд-во ДВГУПС, 2021. – 86 с. : ил.
3. Сазанова, Екатерина Владимировна. Технологии и методы программирования : сборник лабораторных работ / Е.В. Сазанова, В.В. Анисимов. – Хабаровск : Изд-во ДВГУПС, 2020. – 92 с. : ил.
4. Сайт о программировании [Электронный ресурс] – Режим доступа: https://metanit.com (дата обращения: 15.10.2022).
5. Троелсен, Э. Язык программирования С# 5.0 и платформа .NET 4.5 / Э. Троелсен; Пер. с англ. Ю.Н. Артеменко. — М.: Вильямс, 2016. — 1312 c.
6. Хейлсберг, А. Язык программирования C#. Классика Computers Science / А. Хейлсберг, М. Торгерсен, С. Вилтамут. — СПб.: Питер, 2016. — 784 c.
7. Рихтер, Дж. CLR via C#. Программирование на платформе Microsoft. NET Framework 4.5 на языке C# / Дж. Рихтер. - СПб.: Питер, 2018. - 351 c.
8. Гриффитс, И. Программирование на C# 5.0 / И. Гриффитс. - М.: ЭКСМО, 2016. - 208 c.