Разработка игры 'Виселица' на С#
Содержание
Введение
. Постановка задачи
. Описание среды разработки
. Проектирование программного комплекса
.1 Этапы проектирования задачи
.2 Отладка и тестирование
. Инструкция программиста
. Инструкция пользователя
Заключение
Литература
Приложение А
Введение
Целью курсового проекта является разработка приложения «Виселица». Оно
имитирует игру в слова, знакомую нам с детства.
Развивающие игры - это игры на развитие внимания,
памяти, мышления. Игры должны быть оригинальными, интересными и нести в себе задачу,
вопрос, проблему, которые необходимо решить ребенку, только в этом случае они
выполняют свою цель. Одной из разновидностей развивающих игр являются
настольные игры, которые в интересной красочной форме учат ребенка
самостоятельности, сообразительности, образности мышления. В данном проекте под
названием «Виселица» необходима интуиция, логика. Играя, ребёнок осваивает
новые роли, развивает навыки и расширяет жизненный опыт.
Сегодня на рынке имеется великое множество игр,
программ и все они требовательны к производительности ПК, в то время как
офисные игры и игры для детей превосходно работают на менее производительных ПК
и часть людей до сих пор ими увлекается. Исходя из этой ситуации можно сделать
вывод, что игра “Виселица” будет актуальна для пользования как детьми, так и
взрослыми и может работать как на бюджетных низко производительных, так и на
высоко производительных ПК.
Объект исследования - изучение визуальной среды
программирования Microsoft Visual Studio 2015 Enterprise.
Предмет исследования- создание приложения «Виселица».
В соответствии с целью курсового проекта можно
сформулировать такие задачи как:
исследование предметной области;
изучение среды разработки;
разработка интерфейса приложения;
привлекательный дизайн.
. Постановка задачи
Разработать программу «Виселица» с использованием программной среды
Visual Studio и средств объектно-ориентированного
программирования.
Принцип игры в том, что компьютер загадывает слово, а
пользователь поочередно предлагает буквы, которые могут входить в это слово.
Если предлагаемая буква есть в слове, то компьютер ее пишет в соответствующих
полях - столько раз, сколько она встречается в слове. Если отсутствует буква,
то к виселице добавляется круг к петле, изображающий голову. Пользователь
продолжает угадывать буквы до тех пор, пока не отгадает все слово. За каждый
неправильный ответ добавляется одна часть туловища к виселице, в данном проекте
их 6. Если туловище в виселице нарисовано полностью, то отгадывающий игрок
проигрывает, считается повешенным. Если игроку удаётся угадать слово, он
выигрывает.
Требования к
программе:
1) наличие главного меню, состоящее из пунктов: «Начать игру»,
«Узнать правила игры», «Завершить работу с программой»;
) грамотно подобранное цветовое решение;
) интуитивно понятный интерфейс;
) наличие музыки.
. Описание
среды разработки
Microsoft
Visual Studio - линейка продуктов компании Microsoft
<https://ru.wikipedia.org/wiki/Microsoft>, включающих интегрированную
среду разработки <https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D1%80%D0%B5%D0%B4%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8>
программного обеспечения и ряд других инструментальных средств. Данные продукты
позволяют разрабатывать как консольные
<https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F>
приложения <https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5>,
так и приложения с графическим интерфейсом
<https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F>,
в том числе с поддержкой технологии Windows Forms
<https://ru.wikipedia.org/wiki/Windows_Forms>, а также веб-сайты
<https://ru.wikipedia.org/wiki/%D0%A1%D0%B0%D0%B9%D1%82>, веб-приложения
<https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5>,
веб-службы
<https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D0%B0>
как в родном
<https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4>,
так и в управляемом
<https://ru.wikipedia.org/wiki/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4>
кодах для всех платформ, поддерживаемых Windows
<https://ru.wikipedia.org/wiki/Windows>, Windows Mobile <https://ru.wikipedia.org/wiki/Windows_Mobile>,
Windows CE <https://ru.wikipedia.org/wiki/Windows_CE>, .NET Framework
<https://ru.wikipedia.org/wiki/.NET_Framework>, Xbox
<https://ru.wikipedia.org/wiki/Xbox>, Windows Phone
<https://ru.wikipedia.org/wiki/Windows_Phone> .NET Compact Framework
<https://ru.wikipedia.org/wiki/.NET_Compact_Framework> и Silverlight
<https://ru.wikipedia.org/wiki/Silverlight>.Studio включает в себя
редактор исходного кода
<https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BA%D0%BE%D0%B4%D0%B0>
с поддержкой технологии IntelliSense
<https://ru.wikipedia.org/wiki/IntelliSense> и возможностью простейшего
рефакторинга кода <https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3>.
Встроенный отладчик
<https://ru.wikipedia.org/wiki/Microsoft_Visual_Studio_Debugger> может
работать как отладчик уровня исходного кода, так и как отладчик машинного
уровня. Остальные встраиваемые инструменты включают в себя редактор форм для
упрощения создания графического интерфейса приложения, веб-редактор, дизайнер
классов
<https://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%B0%D1%81%D1%81_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)>
и дизайнер схемы базы данных
<https://ru.wikipedia.org/wiki/%D0%A1%D1%85%D0%B5%D0%BC%D0%B0_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85>.
Visual Studio позволяет создавать и подключать сторонние дополнения (плагины
<https://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD>) для
расширения функциональности практически на каждом уровне, включая добавление
поддержки систем контроля версий исходного кода
<https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F%D0%BC%D0%B8>
(как, например, Subversion <https://ru.wikipedia.org/wiki/Subversion> и
Visual SourceSafe <https://ru.wikipedia.org/wiki/Microsoft_Visual_SourceSafe>),
добавление новых наборов инструментов (например, для редактирования и
визуального проектирования кода на предметно-ориентированных языках
программирования
<https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA>)
или инструментов для прочих аспектовпроцесса разработки программного
обеспечения <https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F>
(например, клиент Team Explorer для работы с Team Foundation Server
<https://ru.wikipedia.org/wiki/Team_Foundation_Server>).
Компоненты:Studio
включает один или несколько компонентов из следующих:
1) Visual Basic .NET
<https://ru.wikipedia.org/wiki/Visual_Basic_.NET>, а до его появления -
Visual Basic <https://ru.wikipedia.org/wiki/Visual_Basic>;
) Visual C++
<https://ru.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B>;
) Visual C#
<https://ru.wikipedia.org/wiki/C_Sharp>;
) Visual F#
<https://ru.wikipedia.org/wiki/F_Sharp> (включён начиная с Visual Studio
2010).
Многие варианты поставки также включают:
Microsoft SQL Server
<https://ru.wikipedia.org/wiki/Microsoft_SQL_Server> либо
Microsoft SQL Server Express
<https://ru.wikipedia.org/wiki/Microsoft_SQL_Server>
В прошлом в состав Visual Studio также входили
продукты:
1) Visual InterDev
<https://ru.wikipedia.org/wiki/Visual_InterDev>;
) Visual J++
<https://ru.wikipedia.org/wiki/Visual_J%2B%2B>;
) Visual J#
<https://ru.wikipedia.org/wiki/Visual_J_Sharp>;
) Visual FoxPro <https://ru.wikipedia.org/wiki/Visual_FoxPro>;
) Visual Source Safe - файл-серверная система
управления версиями.
Проект создавался в системе программирования Visual studio 2015 Enterprise.
Visual Studio 2015 Enterprise
12 ноября 2014 года было объявлено, что «Visual Studio
2015» принято в качестве окончательного варианта имени продукта.
Данная
редакция предоставляет IDE
<https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D1%80%D0%B5%D0%B4%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8>
для всех поддерживаемых продуктов и поддерживает полную версию библиотеки MSDN
<https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_MSDN>.
Поддерживается редактирование XML <https://ru.wikipedia.org/wiki/XML> и
XSLT <https://ru.wikipedia.org/wiki/XSLT>, как и средства для
тестирования объектов. Однако отсутствует обозреватель серверов и интеграция с
Microsoft SQL Server <https://ru.wikipedia.org/wiki/Microsoft_SQL_Server>.
Поддержка разработки под мобильные устройства изначально была включена в Visual
Studio 2005 Standard, но в версии 2008 она доступна только в
Professional-редакции. Начиная с версии 2010 более не существует.Studio 2015
предоставляется в трёх редакциях: бесплатной Community Edition, объединяющей
все Express-версии, и платных Professional Edition для небольших проектов и
Enterprise Edition для крупных проектов.
Первый
CTP был выпущен 2 июня 2014 года, затем 29 апреля 2015 года был выпущен Release
Candidate. Финальный релиз Visual Studio 2015 стал доступен для скачивания 20
июля 2015 года.
Visual Studio Enterprise 2015 - это все возможности Visual Studio Premium + Visual
Studio Ultimate. Studio Enterprise 2015 - это новая, самая современная
интегрированная среда разработки от Майкрософта.
Visual Studio Enterprise с MSDN содержит все средства и сервисы Visual Studio Ultimate с MSDN, а также многие другие. Приобретая бесплатное
автоматическое обновление, вы получаете неограниченный доступ к вашим рабочим
инструментам и новым компонентам:
) средства автоматического и ручного тестирования;
) средства тестирования производительности и нагрузочного
тестирования;
) возможности проектирования масштабируемой архитектуры и
обнаружения;
) интегрированные средства управления сложными массивами
программного кода;
) средства повышения производительности бизнес-приложений;
) встроенные средства управления выпусками и операциями;
) А также наиболее полный набор преимуществ MSDN, включая кредит в
Azure на сумму 150 долларов США для разработки и тестирования, 30 курсов
Pluralsight и доступ уровня Advanced к Visual Studio Online.
. Проектирование программного комплекса
.1 Этапы проектирования задачи
Проектирование задачи проводилось в несколько этапов.
) Разработка структуры программы.
Были разработаны 7 форм, осуществляющих определенные функции программы.
Рисунок 1 - Структура программы
) Разработка интерфейса программы.
Главная форма (Рисунок 2):
Рисунок 2 - Главная форма
На главной форме имеются 3 кнопки, имитирующие пункты меню и фон для
удобства. Для изображения фона на форме в коде используется путь к файлу с
фоном
Справка (Рисунок 3):
Рисунок 3 - Справка
На этой форме располагается информация о разработчике и кнопка с
правилами игры.
Регистрация пользователя (Рисунок 4):
Рисунок 4 - Регистрация пользователя
При старте игры открывается диалоговое окно с вводом имени пользователя.
На нем располагается textbox
и кнопка для продолжения. При вводе данных присутствует проверка на вводимое
количество символов и данные сохраняются в текстовом файле «Рейтинг». Проверка
предусматривает максимальное количество вводимых символов-15 и если поле ввода
данных будет пустым, то программа требует ввести данные.
Выбор категории (Рисунок 5) и уровня сложности (Рисунок 6):
Рисунок 5 - Выбор категории слов
Рисунок 6 - Выбор уровня сложности
После ввода имени последовательно открываются 2 аналогичные формы с
выбором категории слов и уровня сложности. На них находятся 3 кнопки с
категориями и 1 кнопка с выходом в главное меню.
Игровой процесс (Рисунок 7):
Рисунок 7 - Игровой процесс
После этих форм открывается форма с игровым процессом. На нем присутствует
picturebox, алфавит и label с вводом букв. Работа этой формы связана с текстовыми
файлами, в которых находятся отгадываемые слова. В эти файлы можно добавлять
новые слова или же наоборот удалять их.
Окно с результатом (Рисунок 8):
Рисунок 8 - Окно результатов
Если игрок выиграл или проиграл выводится соответствующее диалоговое окно
с результатом и кнопкой для продолжения с присутствующей на ней музыкой. Для
проигрывания музыки используется библиотека Windows Media Player.
Таблица рекордов (Рисунок 9):
Рисунок 9 - Таблица рекордов
После результата следует форма с таблицей рекордов, с находящейся на ней richtextbox и кнопкой для продолжения. Данные
игроков заносятся в текстовый файл «Рейтинг» и сохраняются там.
Форма с выбором продолжения игры (Рисунок 10):
Рисунок 10 - Выбор продолжения игры
По нажатию на кнопку «Продолжить» появляется финальная форма с 2
кнопками: Да или Нет. И пользователю необходимо решить начинать ли новую игру
или же завершить ее.
) Написание кода программы (предоставлен в приложении А).
.2 Отладка и тестирование
Тестирование - процесс исследования, испытания программного продукта.
Тестирование тесно связано с такими этапами разработки программного
обеспечения как проектирование и реализация. В систему встраиваются специальные
механизмы, которые дают возможность производить тестирование системы на
соответствие требований к ней, проверку оформления и наличие необходимого
пакета документации.
Результатом тестирования является устранение всех недостатков системы и
заключение о ее качестве.
Отладка - этап подготовки программного продукта, на котором обнаруживают,
локализуют и устраняют ошибки.
При тестировании игры были проверены следующие функции:
) Запуск игры.
Проверен запуск игры с исполняемого файла на разных ПК.
) Функции главного меню.
Проверена работоспособность кнопок.
) Регистрация пользователя.
Для регистрации пользователю необходимо ввести имя, не превышающее 15
символов. Если пользователь оставляет поле пустым программа требует указать
данные.
) Игровой процесс.
Проверена вся работоспособность алгоритма игрового процесса.
Алфавит при выборе букв работает стабильно и форма связана с текстовым
файлом. Счет ошибок осуществляется верно и по мере их накопления сменяются
рисунки.
) Таблица рекордов.
Проверено внесение данных в таблицу.
В таблице присутствует сортировка по количеству побед.
Был найден недочет в регистрации пользователя. Причина заключалась в том,
что имя пользователя могло быть либо пустым, либо выходить за рамки формы.
Так как в программе не производится каких-либо расчетов, то проблемы не
могут быть вызваны из-за числовых данных.
. Инструкция программиста
На диске с программой находится папка с проектом, содержащая файлы:
- .sln файл - файл
организации проектов Visual studio;
- .suo файл - настройки пользователя;
- .cs файлы -
исходный код C#;
- .cofig файлы - xml файлы конфигурации;
- .ico файлы - иконки
приложения;
- .csproj файл - проект Microsoft Visual Studio C#;
- .manifest файлы -
файлы манифеста приложения;
- .cache файлы - файлы с кэшем проекта;
- .recources файлы -
файлы ресурсов;
- .resx файлы - файлы ресурсов в виде xml;
- .setting файлы - файлы настроек Visual studio;
- .exe файл- файл
запуска приложения.
Для работы программы требуется наличие полной папки с программой.
Системные требования:
- операционная система Windows XP и выше;
- процессор с тактовой частотой 1Мгц и выше;
- объем оперативной памяти 128 Мб и выше.
Дополнительное оборудование:
- компьютерная мышь;
- клавиатура.
. Инструкция пользователя
Для того, чтобы начать работу с приложением необходимо вставить компакт
диск в оптический привод ПК, открыть папку с программой и запустить исполняемый
файл.
Правила игры:
Игра заключается в том, что загадывается слово, а игрок
угадывает буквы и все слово целиком. Загаданное слово является именем
существительным единственного числа, либо множественного числа при отсутствии у
слова формы единственного числа. Всего попыток 6. Если игрок выбирает неверную
букву, то количество попыток уменьшается. Если человек в виселице нарисован
полностью, то игрок проигрывает. Если игроку удаётся угадать слово, он
выигрывает.
После запуска программы появляется главное меню (Рисунок
11):
Рисунок 11 - Главное меню
Описание главного меню:
) При нажатии на кнопку «Начать игру», программа переходит на
новую форму с вводом имени пользователя (Рисунок 12).
) При нажатии на кнопку «Справка» открывает окно с информацией об
игре.
) Нажатие на кнопку «Выход» завершает работу программы.
Рисунок 12 - Ввод имени пользователя
При нажатии кнопки «Продолжить» открывается следующая форма с выбором
категории слов (Рисунок 13).
Рисунок 13 - Выбор категории слов
При нажатии на любую из категорий открывается следующая форма с выбором
уровня сложности (Рисунок 14).
Рисунок 14 - Выбор сложности
После выбора уровня сложности открывается форма с игровым процессом
(Рисунок 15).
Рисунок 15 - Игровой процесс
В зависимости от того, проиграл ли игрок или выиграл выводится диалоговое
окно с оповещением и музыкой. Для проигрывания музыки подключена библиотека Windows Media Player (Рисунок 16).
Рисунок 16 - Результат
После окна с оповещением открывается таблица рекордов (Рисунок 17).
Рисунок 17 - Таблица рекордов
После нажатия на кнопку «Продолжить» появится диалоговое окно с выбором
начать новую игру или же завершить работу (Рисунок 18).
Рисунок 18 - Начало новой игры(завершение)
Заключение
Целью курсового проекта являлась разработка приложения «Виселица».
В соответствии с целью курсового проекта выполнены
такие задачи как:
исследование предметной области;
изучение среды разработки;
разработка интерфейса приложения;
привлекательный дизайн.
В результате выполнения курсового проекта было разработано приложение
«Виселица». Созданная игра поможет пополнить лексикон человека и улучшить
логическое мышление.
В программе реализованы функции:
) справка об игре, понятная пользователю;
2) таблица рекордов;
3) проигрывание музыки.
В ходе данного курсового проекта были усовершенствованы и закреплены
навыки работы в среде Microsoft Visual Studio C# и получен опыт разработки программного продукта и его
документации. В результате выполненных работ был получен программный продукт
«Виселица» и комплект документации к нему. Программа реализовывалась полностью
в соответствии с техническим заданием.
Литература
1 ГОСТ
2.105-95. Общие требования к текстовым документам. - Введ. 1996-01-07. - М. :
Изд-во стандартов, 1996. - (Единая система конструкторской документации).
ГОСТ
7.0.5-2008. Система стандартов по информации, библиотечному и издательскому
делу. Библиографическое описание. Общие требования и правила составления, 2008.
- М. : Изд-во стандартов, 2008. (Система стандартов по информации,
библиотечному и издательскому делу).
3 Ватсон, К.
С# Программист программисту / К. Ватсон - Москва. : «Лори», 2013. - 879 стр.
Дрейер, М. C#
для школьников / М. Дрейер - СПб. : «БИНОМ. Лаборатория знании», 2011. - 126
стр.
Культин, Н.
Р. C# в задачах и примерах / Н. Р. Культин - СПб. : «БХВ-Петербург», 2012. -
241 стр.
Лабор, В.
Visual C# Создание приложений для Windows / В. Лабор - Воронеж. : «Харвест»,
2014. - 385 стр.
Нэш, Т. C#
2015 Ускоренный курс для профессионалов / Т. Нэш - Москва. : «Вильямс», 2015. -
576 стр.
Павловская,
Т. А. C# Программироване на языке высокого уровня / Т. А. Павловская - СПб. :
«Питер Пресс», 2013. - 433 стр.
Петцольд, Ч.
Программирование для Microsoft Windows на С#. Том 1 / Ч. Петцольд - Москва. :
«Русская Редакция», 2011. - 570 стр.
Петцольд, Ч.
Программирование для Microsoft Windows на С#. Том 2 / Ч. Петцольд - Москва. :
«Русская Редакция», 2012. - 618 стр.
11 Троелсен,
Э. С# и платформа .NET. Библиотека программиста / Э. Троелсен - СПб. : «Питер»,
2014. - 796 стр.
12 Шилдт, Г.
Полный справочник по C# / Г. Шилдт - Мосвка. : «Вильямс», 2014. - 748 стр.
13
www.cyberforum.ru/net-framework/
<http://www.cyberforum.ru/net-framework/> - Форум программистов Microsoft NET.
Приложение А
программа игра виселица тестирование
(Обязательное)
Листинг программы
Код файла MainForm.cs
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;WindowsFormsApplication1
{partial class MainForm : Form
{MainForm()
{();
}void button1_Click(object sender, EventArgs
e)
{_data dc = new enter_data();//переход на форму c вводом
данных с 1.Show();.Hide();//закрыть 1 форму
}void button3_Click(object sender, EventArgs
e)
{.Exit();//выход из программы
}
private void button2_Click(object sender,
EventArgs e)
{fr = new Info();//переход на форму со
справкой.Show();//показать новую форму.Hide();//закрыть предыдущую форму
}void Form1_Load(object sender, EventArgs e)
{.BackgroundImage = new
Bitmap(@"C:\Program files\курсач\курсовая\курсовая\Resources\виселица1.jpg");.Size
= new Size(450, 450);.BackgroundImageLayout = ImageLayout.Stretch;
}
}
}
Код файла Info.csWindowsFormsApplication1
{partial class Info : Form
{Info()
{();
}void Form3_Load(object sender, EventArgs e)
{.BackgroundImage = new
Bitmap(@"C:\Program files\курсач\курсовая\курсовая\Resources\виселица1.jpg");//вставил картинку для фона на форму 3(справка).Size =
new Size(780, 475);//задал размер окна.BackgroundImageLayout =
ImageLayout.Stretch;//чтобы размер картинки = размеру окна
}void button1_Click(object sender, EventArgs
e)
{fr = new MainForm();//переход на первую форму с
3.Show();//.Hide();//закрыть 3 форму
}void button2_Click(object sender, EventArgs
e)
{.Show("Игра заключается в том, что загадывается
слово, а игрок угадывает буквы и все слово целиком. \nЗагаданное слово является
именем существительным единственного числа, либо множественного числа при
отсутствии у слова формы единственного числа. \nВсего попыток 6.Если игрок
выбирает неверную букву, то количество попыток уменьшается. Если человек в
виселице нарисован полностью, то игрок проигрывает. Если игроку удаётся угадать
слово, он выигрывает.");
}
}
}
Код файла enter_dataWindowsFormsApplication1
{partial class MainForm : Form
{MainForm()
{();
}void button1_Click(object sender, EventArgs
e)
{_data dc = new enter_data();//переход на форму c вводом
данных с 1.Show();.Hide();//закрыть 1 форму
}void button3_Click(object sender, EventArgs
e)
{.Exit();//выход из программы
}
private void button2_Click(object sender,
EventArgs e)
{fr = new Info();//переход на форму со
справкой.Show();//показать новую форму.Hide();//закрыть предыдущую форму
}void Form1_Load(object sender, EventArgs e)
{.BackgroundImage = new
Bitmap(@"C:\Program files\курсач\курсовая\курсовая\Resources\виселица1.jpg");.Size
= new Size(450, 450);.BackgroundImageLayout = ImageLayout.Stretch;
}
}
}
Код файла Category.cs
namespace WindowsFormsApplication1
{partial class Category : Form
{Category()
{();
}void Form5_Load(object sender, EventArgs e)
{.BackgroundImage = new
Bitmap(@"C:\Program files\курсач\курсовая\курсовая\Resources\виселица1.jpg");.Size
= new Size(500, 500);.BackgroundImageLayout = ImageLayout.Stretch;
}void button1_Click(object sender, EventArgs
e)
{fr = new Form2();//переход на форму С уровнями
сложности городов
fr.Show();.Hide();
}void button2_Click(object sender, EventArgs
e)
{fr = new Form8();//переход на форму С уровнями
сложности зверей
fr.Show();.Hide();
}void button3_Click(object sender, EventArgs
e)
{fr = new Form9();//переход на форму С уровнями
сложности имен
fr.Show();.Hide();
}void button4_Click(object sender, EventArgs
e)
{fr = new MainForm();.Show();.Hide();
}
}
}
Код файла difficulty level.cs
namespace WindowsFormsApplication1
{partial class Form2 : Form
{Form2()
{();
}void button1_Click(object sender, EventArgs
e)
{fr = new Form4();//переход на форму с легким уровнем
сложности
fr.Show();.Hide();
}void Form2_Load(object sender, EventArgs e)
{.BackgroundImage = new
Bitmap(@"C:\Program files\курсач\курсовая\курсовая\Resources\виселица1.jpg");.Size
= new Size(500, 500);.BackgroundImageLayout = ImageLayout.Stretch;
}void button2_Click(object sender, EventArgs
e)
{fr = new game8();//переход на форму со среднем уровнем
сложности
fr.Show();.Hide();
}void button3_Click(object sender, EventArgs
e)
{fr = new game9();//переход на форму со тяжелым уровнем
сложности
fr.Show();.Hide();
}void button4_Click(object sender, EventArgs
e)
{fr = new Category();.Show();.Hide();
}
}
}
Код файла difficulty level2.cs
namespace WindowsFormsApplication1
{partial class Form9 : Form
{Form9()
{();
}void button1_Click(object sender, EventArgs
e)
{fr = new Form13();//переход на форму с легким уровнем
сложности
fr.Show();.Hide();
}void Form9_Load(object sender, EventArgs e)
{.BackgroundImage = new
Bitmap(@"C:\Program files\курсач\курсовая\курсовая\Resources\виселица1.jpg");.Size
= new Size(500, 500);.BackgroundImageLayout = ImageLayout.Stretch;
}void button2_Click(object sender, EventArgs
e)
{fr = new game5();//переход на форму со среднем уровнем
сложности
fr.Show();.Hide();
}void button3_Click(object sender, EventArgs
e)
{fr = new game6();//переход на форму со тяжелым уровнем
сложности
fr.Show();.Hide();
}void button4_Click(object sender, EventArgs
e)
{fr = new Category();.Show();.Hide();
}
}
}
Код файла difficulty level3.cs
namespace WindowsFormsApplication1
{partial class Form8 : Form
{Form8()
{();
}void button1_Click(object sender, EventArgs
e)
{fr = new game1();//переход на форму с легким уровнем
сложности
fr.Show();.Hide();
}void Form8_Load(object sender, EventArgs e)
{.BackgroundImage = new
Bitmap(@"C:\Program files\курсач\курсовая\курсовая\Resources\виселица1.jpg");.Size
= new Size(500, 500);.BackgroundImageLayout = ImageLayout.Stretch;
}void button2_Click(object sender, EventArgs
e)
{fr = new game2();//переход на форму со среднем уровнем
сложности
fr.Show();.Hide();
}void button3_Click(object sender, EventArgs
e)
{fr = new game3();//переход на форму со тяжелым уровнем
сложности
fr.Show();.Hide();
}void button4_Click(object sender, EventArgs
e)
{fr = new Category();.Show();.Hide();
}
}
}
Код файла game1.cs
namespace WindowsFormsApplication1
{partial class game1 : Form
{music;word; int numGuessesInt;
List<char> guessedLetters;game1()
{();
}
//Создание кнопок для букв алфавитаvoid
Form10_Shown(object sender, EventArgs e)
{str = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//строковая перем. с алфавитом
int posX = 20, posY = 150;//начальные позиции первой
строки букв
for (int i = 0; i < str.Count(); i++)//создание цикла
{button = new Button();//метод создания новой кнопки.BackColor
= Color.Aqua;//цвет кнопки
button.Text = str[i] + "";//присваивает
значение след.буквы
button.Click += new
EventHandler(this.button_Click);.Location = new System.Drawing.Point(posX,
posY);//рисование кнопки.Size =
new System.Drawing.Size(30, 25);//задание размера кнопки.Controls.Add(button);//добавление кнопки+=
button.Width;//ширина кнопки((i + 1) % 8 == 0)
{= 20;+= button.Height;//высота кнопки
}
}_new_game();
}
private void start_new_game()//начальная
позиция
{= 6;//количество попыток= new
List<char>();//отгаданные буквы= pickWord();.Show("Угадайте животное");.Text
= displayWord();.Text = "";
pictureBox1.Load(@"платформа с палкой_1.jpg");
}string pickWord()//выбор слова рандомно
{[] wordList = File.ReadAllLines("Список зверей.txt");randomGen
= new Random();wordList[randomGen.Next(wordList.Count())];
}string displayWord()
{returnedWord =
"";(guessedLetters.Count == 0)
{(char letter in word) returnedWord +=
"_ ";returnedWord;
}(char letter in word)
{letterMatch = false;(char character in
guessedLetters)(char.ToLower(character) == char.ToLower(letter))
{+= character + " ";= true;;
}letterMatch = false;(letterMatch == false)
returnedWord += "_ ";
}returnedWord;
}button_Click(object sender,
System.EventArgs e)
{letter_btn = sender as Button;guessedLetter
= letter_btn.Text;letters = "";repeat = false;(int i = 0; i <
guessedLetters.Count; i++)(char.ToLower(guessedLetters[i]) == char.ToLower(guessedLetter.ToCharArray()[0]))
repeat = true;(repeat == false)
{.Add(guessedLetter.ToCharArray()[0]);(!word.ToCharArray().Contains(char.ToLower(guessedLetter.ToCharArray()[0])))
numGuessesInt -= 1;.Load(@"платформа с палкой_"+(7 -
numGuessesInt)+".jpg");(char letter in guessedLetters) letters +=
" " + letter;.Text = letters;wordToDisplay = displayWord();.Text =
displayWord();(!wordToDisplay.Contains("_"))
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath + "\\Victory.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы выиграли! Правильное слово:
" + word);
SaveCountWin.Save();
}if (numGuessesInt <= 0)
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath + "\\Loose.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы проиграли! Правильное слово:
" + word);
table_of_lider fr = new
table_of_lider();.Show();.Hide();
}
}
}
//кнопка в главное менюvoid
button1_Click(object sender, EventArgs e)
{fr = new MainForm();.Show();.Hide();
}
}
}
Код файла game2.cs
namespace WindowsFormsApplication1
{partial class game2 : Form
{music;word; int numGuessesInt;
List<char> guessedLetters;game2()
{();
}
//Создание кнопок для букв алфавитаvoid
Form11_Shown(object sender, EventArgs e)
{str = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//строковая перем. с алфавитом
int posX = 20, posY = 150;//начальные позиции первой
строки букв
for (int i = 0; i < str.Count(); i++)//создание цикла
{button = new Button();//метод создания новой кнопки.BackColor
= Color.Aqua;//цвет кнопки
button.Text = str[i] + "";//присваивает
значение след.буквы
button.Click += new
EventHandler(this.button_Click);.Location = new System.Drawing.Point(posX, posY);//рисование кнопки.Size =
new System.Drawing.Size(30, 25);//задание размера кнопки.Controls.Add(button);//добавление кнопки+=
button.Width;//ширина кнопки((i + 1) % 8 == 0)
{= 20;+= button.Height;//высота кнопки
}
}_new_game();
}
//начало игры
private void start_new_game()//начальная
позиция
{= 6;//количество попыток= new
List<char>();//отгаданные буквы= pickWord();.Show("Угадайте животное");.Text
= displayWord();.Text = "";
pictureBox1.Load(@"платформа с палкой_1.jpg");
}string pickWord()//выбор слова рандомно
{[] wordList = File.ReadAllLines("Список зверей ср.txt");randomGen
= new Random();wordList[randomGen.Next(wordList.Count())];
}string displayWord()
{returnedWord =
"";(guessedLetters.Count == 0)
{(char letter in word) returnedWord +=
"_ ";returnedWord;
}(char letter in word)
{letterMatch = false;(char character in
guessedLetters)(char.ToLower(character) == char.ToLower(letter))
{+= character + " ";= true;;
}letterMatch = false;(letterMatch == false)
returnedWord += "_ ";
}returnedWord;
}button_Click(object sender,
System.EventArgs e)
{letter_btn = sender as Button;guessedLetter
= letter_btn.Text;letters = "";repeat = false;(int i = 0; i <
guessedLetters.Count; i++)(char.ToLower(guessedLetters[i]) ==
char.ToLower(guessedLetter.ToCharArray()[0])) repeat = true;(repeat == false)
{.Add(guessedLetter.ToCharArray()[0]);(!word.ToCharArray().Contains(char.ToLower(guessedLetter.ToCharArray()[0])))
numGuessesInt -= 1;.Load(@"платформа с палкой_"+(7 -
numGuessesInt)+".jpg");(char letter in guessedLetters) letters +=
" " + letter;.Text = letters;wordToDisplay = displayWord();.Text =
displayWord();(!wordToDisplay.Contains("_"))
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Victory.mp3";.settings.setMode("loop", true);.controls.play();.settings.setMode("loop",
false);
MessageBox.Show("Вы выиграли! Правильное слово:
" + word);
SaveCountWin.Save();
}if (numGuessesInt <= 0)
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Loose.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы проиграли! Правильное слово:
" + word);
table_of_lider fr = new
table_of_lider();.Show();.Hide();
}
}
}
//кнопка в главное менюvoid
button1_Click(object sender, EventArgs e)
{fr = new MainForm();.Show();.Hide();
}
}
}
Код файла game3.cs
namespace WindowsFormsApplication1
{partial class game3 : Form
{music;word; int numGuessesInt;
List<char> guessedLetters;game3()
{();
}
//Создание кнопок для букв алфавитаvoid
Form12_Shown(object sender, EventArgs e)
{str = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//строковая перем. с алфавитом
int posX = 20, posY = 150;//начальные позиции первой
строки букв
for (int i = 0; i < str.Count(); i++)//создание цикла
{button = new Button();//метод создания новой кнопки.BackColor
= Color.Aqua;//цвет кнопки
button.Text = str[i] + "";//присваивает
значение след.буквы
button.Click += new
EventHandler(this.button_Click);.Location = new System.Drawing.Point(posX,
posY);//рисование кнопки.Size =
new System.Drawing.Size(30, 25);//задание размера кнопки.Controls.Add(button);//добавление кнопки+=
button.Width;//ширина кнопки((i + 1) % 8 == 0)
{= 20;+= button.Height;//высота кнопки
}
}_new_game();
}
//начало игры
private void start_new_game()//начальная
позиция
{= 6;//количество попыток= new
List<char>();//отгаданные буквы= pickWord();.Show("Угадайте животное");.Text
= displayWord();.Text = "";
pictureBox1.Load(@"платформа с палкой_1.jpg");
}string pickWord()//выбор слова рандомно
{[] wordList = File.ReadAllLines("Список зверей
hard.txt");randomGen = new
Random();wordList[randomGen.Next(wordList.Count())];
}string displayWord()
{returnedWord =
"";(guessedLetters.Count == 0)
{(char letter in word) returnedWord +=
"_ ";returnedWord;
}(char letter in word)
{letterMatch = false;(char character in
guessedLetters)(char.ToLower(character) == char.ToLower(letter))
{+= character + " ";= true;;
}letterMatch = false;(letterMatch == false)
returnedWord += "_ ";
}returnedWord;
}button_Click(object sender,
System.EventArgs e)
{letter_btn = sender as Button;guessedLetter
= letter_btn.Text;letters = "";repeat = false;(int i = 0; i <
guessedLetters.Count; i++)(char.ToLower(guessedLetters[i]) ==
char.ToLower(guessedLetter.ToCharArray()[0])) repeat = true;(repeat == false)
{.Add(guessedLetter.ToCharArray()[0]);(!word.ToCharArray().Contains(char.ToLower(guessedLetter.ToCharArray()[0])))
numGuessesInt -= 1;.Load(@"платформа с палкой_"+(7 -
numGuessesInt)+".jpg");(char letter in guessedLetters) letters +=
" " + letter;.Text = letters;wordToDisplay = displayWord();.Text =
displayWord();(!wordToDisplay.Contains("_"))
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Victory.mp3";.settings.setMode("loop", true);.controls.play();.settings.setMode("loop",
false);
MessageBox.Show("Вы выиграли! Правильное слово:
" + word);
SaveCountWin.Save();
}if (numGuessesInt <= 0)
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath + "\\Loose.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы проиграли! Правильное слово:
" + word);
table_of_lider fr = new
table_of_lider();.Show();.Hide();
}
}
}
//кнопка в главное менюvoid
button1_Click(object sender, EventArgs e)
{fr = new MainForm();.Show();.Hide();
}
}
}
Код файла game4.cs
namespace WindowsFormsApplication1
{partial class Form13 : Form
{music;word; int numGuessesInt;
List<char> guessedLetters;Form13()
{();
}
//Создание кнопок для букв алфавитаvoid
Form13_Shown(object sender, EventArgs e)
{str = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//строковая перем. с алфавитом
int posX = 20, posY = 150;//начальные позиции первой
строки букв
for (int i = 0; i < str.Count(); i++)//создание цикла
{button = new Button();//метод создания новой кнопки.BackColor
= Color.Aqua;//цвет кнопки
button.Text = str[i] + "";//присваивает
значение след.буквы
button.Click += new
EventHandler(this.button_Click);.Location = new System.Drawing.Point(posX,
posY);//рисование кнопки.Size =
new System.Drawing.Size(30, 25);//задание размера кнопки.Controls.Add(button);//добавление кнопки+=
button.Width;//ширина кнопки((i + 1) % 8 == 0)
{= 20;+= button.Height;//высота кнопки
}
}_new_game();
}
//начало игры
private void start_new_game()//начальная
позиция
{= 6;//количество попыток= new
List<char>();//отгаданные буквы= pickWord();.Show("Угадайте имя");.Text
= displayWord();.Text = "";
pictureBox1.Load(@"платформа с палкой_1.jpg");
}string pickWord()//выбор слова рандомно
{[] wordList = File.ReadAllLines("Список имен.txt");randomGen
= new Random();wordList[randomGen.Next(wordList.Count())];
}string displayWord()
{returnedWord =
"";(guessedLetters.Count == 0)
{(char letter in word) returnedWord +=
"_ ";returnedWord;
}(char letter in word)
{letterMatch = false;(char character in
guessedLetters)(char.ToLower(character) == char.ToLower(letter))
{+= character + " ";= true;;
}letterMatch = false;(letterMatch == false)
returnedWord += "_ ";
}returnedWord;
}button_Click(object sender, System.EventArgs
e)
{letter_btn = sender as Button;guessedLetter
= letter_btn.Text;letters = "";repeat = false;(int i = 0; i <
guessedLetters.Count; i++)(char.ToLower(guessedLetters[i]) ==
char.ToLower(guessedLetter.ToCharArray()[0])) repeat = true;(repeat == false)
{.Add(guessedLetter.ToCharArray()[0]);(!word.ToCharArray().Contains(char.ToLower(guessedLetter.ToCharArray()[0])))
numGuessesInt -= 1;.Load(@"платформа с палкой_"+(7 -
numGuessesInt)+".jpg");(char letter in guessedLetters) letters +=
" " + letter;.Text = letters;wordToDisplay = displayWord();.Text =
displayWord();(!wordToDisplay.Contains("_"))
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Victory.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы выиграли! Правильное слово:
" + word);
SaveCountWin.Save();
}if (numGuessesInt <= 0)
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Loose.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы проиграли! Правильное слово:
" + word);
table_of_lider fr = new
table_of_lider();.Show();.Hide();
}
}
}
//кнопка в главное менюvoid
button1_Click(object sender, EventArgs e)
{fr = new MainForm();.Show();.Hide();
}
}
}
Код файла game5.cs
namespace WindowsFormsApplication1
{partial class game5 : Form
{music;word; int numGuessesInt;
List<char> guessedLetters;game5()
{();
}
//Создание кнопок для букв алфавитаvoid
Form14_Shown(object sender, EventArgs e)
{str = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//строковая перем. с алфавитом
int posX = 20, posY = 150;//начальные позиции первой
строки букв
for (int i = 0; i < str.Count(); i++)//создание цикла
{button = new Button();//метод создания новой кнопки.BackColor
= Color.Aqua;//цвет кнопки
button.Text = str[i] + "";//присваивает
значение след.буквы
button.Click += new
EventHandler(this.button_Click);.Location = new System.Drawing.Point(posX,
posY);//рисование кнопки.Size =
new System.Drawing.Size(30, 25);//задание размера кнопки.Controls.Add(button);//добавление кнопки+=
button.Width;//ширина кнопки((i + 1) % 8 == 0)
{= 20;+= button.Height;//высота кнопки
}
}_new_game();
}
//начало игры
private void start_new_game()//начальная
позиция
{= 6;//количество попыток= new
List<char>();//отгаданные буквы= pickWord();.Show("Угадайте имя");.Text
= displayWord();.Text = "";
pictureBox1.Load(@"платформа с палкой_1.jpg");
}string pickWord()//выбор слова рандомно
{[] wordList = File.ReadAllLines("Список имен ср.txt");randomGen
= new Random();wordList[randomGen.Next(wordList.Count())];
}string displayWord()
{returnedWord =
"";(guessedLetters.Count == 0)
{(char letter in word) returnedWord +=
"_ ";returnedWord;
}(char letter in word)
{letterMatch = false;(char character in guessedLetters)(char.ToLower(character)
== char.ToLower(letter))
{+= character + " ";= true;;
}letterMatch = false;(letterMatch == false)
returnedWord += "_ ";
}returnedWord;
}button_Click(object sender,
System.EventArgs e)
{letter_btn = sender as Button;guessedLetter
= letter_btn.Text;letters = "";repeat = false;(int i = 0; i <
guessedLetters.Count; i++)(char.ToLower(guessedLetters[i]) ==
char.ToLower(guessedLetter.ToCharArray()[0])) repeat = true;(repeat == false)
{.Add(guessedLetter.ToCharArray()[0]);(!word.ToCharArray().Contains(char.ToLower(guessedLetter.ToCharArray()[0])))
numGuessesInt -= 1;.Load(@"платформа с палкой_"+(7 -
numGuessesInt)+".jpg");(char letter in guessedLetters) letters +=
" " + letter;.Text = letters;wordToDisplay = displayWord();.Text = displayWord();(!wordToDisplay.Contains("_"))
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Victory.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы выиграли! Правильное слово:
" + word);
SaveCountWin.Save();
}if (numGuessesInt <= 0)
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Loose.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы проиграли! Правильное слово:
" + word);
table_of_lider fr = new
table_of_lider();.Show();.Hide();
}
}
}
//кнопка в главное менюvoid
button1_Click(object sender, EventArgs e)
{fr = new MainForm();.Show();.Hide();
}
}
}
Код файла game6.cs
namespace WindowsFormsApplication1
{partial class game6 : Form
{music;word; int numGuessesInt;
List<char> guessedLetters;game6()
{();
}
//Создание кнопок для букв алфавитаvoid
Form15_Shown(object sender, EventArgs e)
{str = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//строковая перем. с алфавитом
int posX = 20, posY = 150;//начальные позиции первой
строки букв
for (int i = 0; i < str.Count(); i++)//создание цикла
{button = new Button();//метод создания новой кнопки.BackColor
= Color.Aqua;//цвет кнопки
button.Text = str[i] + "";//присваивает
значение след.буквы
button.Click += new
EventHandler(this.button_Click);.Location = new System.Drawing.Point(posX,
posY);//рисование кнопки.Size =
new System.Drawing.Size(30, 25);//задание размера кнопки.Controls.Add(button);//добавление кнопки+=
button.Width;//ширина кнопки((i + 1) % 8 == 0)
{= 20;+= button.Height;//высота кнопки
}
}_new_game();
}
//начало игры
private void start_new_game()//начальная
позиция
{= 6;//количество попыток= new
List<char>();//отгаданные буквы= pickWord();.Show("Угадайте имя");.Text
= displayWord();.Text = "";
pictureBox1.Load(@"платформа с палкой_1.jpg");
}string pickWord()//выбор слова рандомно
{[] wordList = File.ReadAllLines("Список имен
hard.txt");randomGen = new Random();wordList[randomGen.Next(wordList.Count())];
}string displayWord()
{returnedWord =
"";(guessedLetters.Count == 0)
{(char letter in word) returnedWord +=
"_ ";returnedWord;
}(char letter in word)
{letterMatch = false;(char character in
guessedLetters)(char.ToLower(character) == char.ToLower(letter))
{+= character + " ";= true;;
}letterMatch = false;(letterMatch == false)
returnedWord += "_ ";
}returnedWord;
}button_Click(object sender,
System.EventArgs e)
{letter_btn = sender as Button;guessedLetter
= letter_btn.Text;letters = "";repeat = false;(int i = 0; i <
guessedLetters.Count; i++)(char.ToLower(guessedLetters[i]) ==
char.ToLower(guessedLetter.ToCharArray()[0])) repeat = true;(repeat == false)
{.Add(guessedLetter.ToCharArray()[0]);(!word.ToCharArray().Contains(char.ToLower(guessedLetter.ToCharArray()[0])))
numGuessesInt -= 1;.Load(@"платформа с палкой_"+(7 -
numGuessesInt)+".jpg");(char letter in guessedLetters) letters +=
" " + letter;.Text = letters;wordToDisplay = displayWord();.Text =
displayWord();(!wordToDisplay.Contains("_"))
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Victory.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы выиграли! Правильное слово:
" + word);
SaveCountWin.Save();
}if (numGuessesInt <= 0)
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Loose.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы проиграли! Правильное слово:
" + word);
table_of_lider fr = new
table_of_lider();.Show();.Hide();
}
}
}
//кнопка в главное менюvoid
button1_Click(object sender, EventArgs e)
{fr = new MainForm();.Show();.Hide();
}
}
}
Код файла game7.cs
namespace WindowsFormsApplication1
{partial class Form4 : Form
{music;word; int numGuessesInt;
List<char> guessedLetters;Form4()
{();
}
//Создание кнопок для букв алфавитаvoid
Form4_Shown(object sender, EventArgs e)
{str = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//строковая перем. с алфавитом
int posX = 20, posY = 150;//начальные позиции первой
строки букв
for (int i = 0; i < str.Count(); i++)//создание цикла
{button = new Button();//метод создания новой кнопки.BackColor
= Color.Aqua;//цвет кнопки
button.Text = str[i] + "";//присваивает значение
след.буквы
button.Click += new
EventHandler(this.button_Click);.Location = new System.Drawing.Point(posX,
posY);//рисование кнопки.Size =
new System.Drawing.Size(30, 25);//задание размера кнопки.Controls.Add(button);//добавление кнопки+=
button.Width;//ширина кнопки((i + 1) % 8 == 0)
{= 20;+= button.Height;//высота кнопки
}
}_new_game();
}
//начало игры
private void start_new_game()//начальная
позиция
{= 6;//количество попыток= new
List<char>();//отгаданные буквы= pickWord();.Show("Угадайте город РФ");.Text
= displayWord();.Text = "";
pictureBox1.Load(@"платформа с палкой_1.jpg");
}string pickWord()//выбор слова рандомно
{[] wordList = File.ReadAllLines("Список городов России.txt");randomGen
= new Random();wordList[randomGen.Next(wordList.Count())];
}string displayWord()
{returnedWord =
"";(guessedLetters.Count == 0)
{(char letter in word) returnedWord +=
"_ ";returnedWord;
}(char letter in word)
{letterMatch = false;(char character in
guessedLetters)(char.ToLower(character) == char.ToLower(letter))
{+= character + " ";= true;;
}letterMatch = false;(letterMatch == false)
returnedWord += "_ ";
}returnedWord;
}button_Click(object sender,
System.EventArgs e)
{letter_btn = sender as Button;guessedLetter
= letter_btn.Text;letters = "";repeat = false;(int i = 0; i <
guessedLetters.Count; i++)(char.ToLower(guessedLetters[i]) ==
char.ToLower(guessedLetter.ToCharArray()[0])) repeat = true;(repeat == false)
{.Add(guessedLetter.ToCharArray()[0]);(!word.ToCharArray().Contains(char.ToLower(guessedLetter.ToCharArray()[0])))
numGuessesInt -= 1;.Load(@"платформа с палкой_"+(7 -
numGuessesInt)+".jpg");(char letter in guessedLetters) letters +=
" " + letter;.Text = letters;wordToDisplay = displayWord();.Text =
displayWord();(!wordToDisplay.Contains("_"))
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Victory.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы выиграли! Правильное слово:
" + word);
SaveCountWin.Save();
}if (numGuessesInt <= 0)
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Loose.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы проиграли! Правильное слово:
" + word);
table_of_lider fr = new
table_of_lider();.Show();.Hide();
}
}
}
//кнопка в главное менюvoid
button1_Click(object sender, EventArgs e)
{fr = new MainForm();.Show();.Hide();
}
}
}
Код файла game8.cs
namespace WindowsFormsApplication1
{partial class game8 : Form
{music;word; int numGuessesInt;
List<char> guessedLetters;game8()
{();
}
//Создание кнопок для букв алфавитаvoid
Form6_Shown(object sender, EventArgs e)
{str = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//строковая перем. с алфавитом
int posX = 20, posY = 150;//начальные позиции первой
строки букв
for (int i = 0; i < str.Count(); i++)//создание цикла
{button = new Button();//метод создания новой кнопки.BackColor
= Color.Aqua;//цвет кнопки
button.Text = str[i] + "";//присваивает
значение след.буквы
button.Click += new
EventHandler(this.button_Click);.Location = new System.Drawing.Point(posX,
posY);//рисование кнопки.Size =
new System.Drawing.Size(30, 25);//задание размера кнопки.Controls.Add(button);//добавление кнопки+=
button.Width;//ширина кнопки((i + 1) % 8 == 0)
{= 20;+= button.Height;//высота кнопки
}
}_new_game();
}
//начало игры
private void start_new_game()//начальная
позиция
{= 6;//количество попыток= new
List<char>();//отгаданные буквы= pickWord();.Show("Угадайте город РФ");.Text
= displayWord();.Text = "";
pictureBox1.Load(@"платформа с палкой_1.jpg");
}string pickWord()//выбор слова рандомно
{[] wordList = File.ReadAllLines("Список городов России ср.txt");randomGen
= new Random();wordList[randomGen.Next(wordList.Count())];
}string displayWord()
{returnedWord =
"";(guessedLetters.Count == 0)
}(char letter in word)
{letterMatch = false;(char character in
guessedLetters)(char.ToLower(character) == char.ToLower(letter))
{+= character + " ";= true;;
}letterMatch = false;(letterMatch == false)
returnedWord += "_ ";
}returnedWord;
}button_Click(object sender,
System.EventArgs e)
{letter_btn = sender as Button;guessedLetter
= letter_btn.Text;letters = "";repeat = false;(int i = 0; i <
guessedLetters.Count; i++)(char.ToLower(guessedLetters[i]) ==
char.ToLower(guessedLetter.ToCharArray()[0])) repeat = true;(repeat == false)
{.Add(guessedLetter.ToCharArray()[0]);(!word.ToCharArray().Contains(char.ToLower(guessedLetter.ToCharArray()[0])))
numGuessesInt -= 1;.Load(@"платформа с палкой_"+(7 -
numGuessesInt)+".jpg");(char letter in guessedLetters) letters +=
" " + letter;.Text = letters;wordToDisplay = displayWord();.Text =
displayWord();(!wordToDisplay.Contains("_"))
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Victory.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы выиграли! Правильное слово:
" + word);
SaveCountWin.Save();
}if (numGuessesInt <= 0)
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Loose.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы проиграли! Правильное слово:
" + word);
table_of_lider fr = new
table_of_lider();.Show();.Hide();
}
}
}
//кнопка в главное менюvoid
button1_Click(object sender, EventArgs e)
{fr = new MainForm();.Show();.Hide();
}
}
}
Код файла game9.cs
namespace WindowsFormsApplication1
{partial class game9 : Form
{music;word; int numGuessesInt;
List<char> guessedLetters;game9()
{();
}
//Создание кнопок для букв алфавитаvoid
Form7_Shown(object sender, EventArgs e)
{.Size = new Size(500, 500);str = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//строковая перем. с алфавитом
int posX = 20, posY = 150;//начальные позиции первой
строки букв
for (int i = 0; i < str.Count(); i++)//создание цикла
{button = new Button();//метод создания новой кнопки.BackColor
= Color.Aqua;//цвет кнопки
button.Text = str[i] + "";//присваивает
значение след.буквы
button.Click += new
EventHandler(this.button_Click);.Location = new System.Drawing.Point(posX,
posY);//рисование кнопки.Size =
new System.Drawing.Size(30, 25);//задание размера кнопки.Controls.Add(button);//добавление кнопки+=
button.Width;//ширина кнопки((i + 1) % 8 == 0)
{= 20;+= button.Height;//высота кнопки
}
}_new_game();
}
//начало игры
private void start_new_game()//начальная
позиция
{= 6;//количество попыток= new
List<char>();//отгаданные буквы= pickWord();.Show("Угадайте город РФ");.Text
= displayWord();.Text = "";
pictureBox1.Load(@"платформа с палкой_1.jpg");
}string pickWord()//выбор слова рандомно
{[] wordList = File.ReadAllLines("Список городов России
hard.txt");randomGen = new
Random();wordList[randomGen.Next(wordList.Count())];
}string displayWord()
{returnedWord =
"";(guessedLetters.Count == 0)
{(char letter in word) returnedWord +=
"_ ";returnedWord;
}(char letter in word)
{letterMatch = false;(char character in
guessedLetters)(char.ToLower(character) == char.ToLower(letter))
{+= character + " ";= true;;
}letterMatch = false;(letterMatch == false)
returnedWord += "_ ";
}returnedWord;
}button_Click(object sender,
System.EventArgs e)
{letter_btn = sender as Button;guessedLetter
= letter_btn.Text;letters = "";repeat = false;(int i = 0; i <
guessedLetters.Count; i++)(char.ToLower(guessedLetters[i]) ==
char.ToLower(guessedLetter.ToCharArray()[0])) repeat = true;(repeat == false)
{.Add(guessedLetter.ToCharArray()[0]);(!word.ToCharArray().Contains(char.ToLower(guessedLetter.ToCharArray()[0])))
numGuessesInt -= 1;.Load(@"платформа с палкой_"+(7 -
numGuessesInt)+".jpg");(char letter in guessedLetters) letters +=
" " + letter;.Text = letters;wordToDisplay = displayWord();.Text =
displayWord();(!wordToDisplay.Contains("_"))
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Victory.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы выиграли! Правильное слово:
" + word);
SaveCountWin.Save();
}if (numGuessesInt <= 0)
{= Media.Instance.wmp;.controls.stop();.URL
= Application.StartupPath +
"\\Loose.mp3";.settings.setMode("loop",
true);.controls.play();.settings.setMode("loop", false);
MessageBox.Show("Вы проиграли! Правильное слово:
" + word);
table_of_lider fr = new
table_of_lider();.Show();.Hide();
}
}
}
//кнопка в главное менюvoid
button1_Click(object sender, EventArgs e)
{fr = new MainForm();.Show();.Hide();
}
}
}
Код файла table of lider.cs
namespace WindowsFormsApplication1
{partial class table_of_lider : Form
{table_of_lider()
{();(File.Exists("Рейтинг.txt"))
{str = File.ReadAllLines("Рейтинг.txt");
// Читаем полностью фаилListRating
= new List<rating>(); // лист со структурой созданной ниже(int i = 0; i < str.Count(); i++)
{
{nb = str[i].Split(':');.Add(new rating(nb[0],
Convert.ToInt32(nb[1]))); // добавляем все значения а именно Имя и Макс. Баланс
}{ continue; }
}.Sort((b, a) =>
a.CountWin.CompareTo(b.CountWin)); // Лямбда функция для сортировкиcount = 1;(var item
in ListRating) { // вывод.AppendText(count+". Игрок: "+
item.Name + " Кол-во побед: "+
item.CountWin + Environment.NewLine);++;
}
}
}void button1_Click_1(object sender,
EventArgs e)
{_new_game fr = new
start_new_game();.Show();.Hide();
}
}
}
Код файла start new game.cs
namespace WindowsFormsApplication1
{partial class start_new_game : Form
{start_new_game()
{();
}void start_new_game_Load(object sender,
EventArgs e)
{.Size = new Size(225, 225);
}void button1_Click(object sender, EventArgs
e)
{fr = new Category();.Show();.Hide();
}void button2_Click(object sender, EventArgs
e)
{.Exit();
}
}
}
Код файла Config.cs
namespace WindowsFormsApplication1
{Config
{static readonly Config ConfigList = new
Config();static Config Instance { get { return ConfigList; } }String NamePayer;
}
}
Код файла Media.cs
namespace WindowsFormsApplication1
{Media
{static readonly Media sound = new
Media();static Media Instance { get { return sound; } }WindowsMediaPlayer wmp =
new WindowsMediaPlayer();
}
}
Код файла SaveCountWin.cs
namespace WindowsFormsApplication1
{SaveCountWin
{static void Save()
{cf = Config.Instance;<rating> ratg =
new List<rating>();.Clear();(File.Exists("Рейтинг.txt"))
{src = File.ReadAllLines("Рейтинг.txt");(var
item in src)
{
{pwr = item.Split(':');.Add(new rating(pwr[0],
Convert.ToInt32(pwr[1])));
}{ continue; }
}
}IsItem = true;(int i = 0; i <
ratg.Count; i++)
{_name = ratg[i].Name;(cf.NamePayer ==
_name)
{[i].CountWin++;= false;;
}
}(IsItem)
{.Add(new rating(cf.NamePayer, 1));
}str = "";(var item in ratg)
{+= item.Name + ":" +
item.CountWin.ToString() + Environment.NewLine;
}file = new StreamWriter("Рейтинг.txt");.WriteLine(str);.Close();_of_lider
fr = new table_of_lider();.Show();
}
}rating
{string Name;int CountWin;rating(string
name, int countwin)
{.Name = name;.CountWin = countwin;
}
}
}