Данные о работе:
Курсовая работа
Название дисциплины: Алгоритмические языки и программирование
Тема: Написание программы "Угадайка"
Введение
1. Разработка программы
1.1 Технические характеристики
1.2 Выбор состава технических и программных средств
2. Разработка рабочего проекта
2.1 Разработка программы
2.2 Спецификация программы
2.3 Описание программы
2.4 Тестирование программы
3. Внедрение
Заключение
Глоссарий
Список использованных источников
Приложения
Задание на курсовую работу по дисциплине: «Алгоритмические языки и программирование».
Тема: Разработка игрового приложения для ОС MicrosoftWindows.
Условие задачи: Написать программу «Угадайка». Компьютер случайным образом загадывает число от 1 до 100. Задача пользователя – за минимальное количество попыток, но не более шести, угадать это число, предлагая компьютеру свои варианты, в ответ на которые программа указывает счёт попытки и сообщение о том, больше загаданное число или меньше введённого с клавиатуры. При правильной стратегии (деление интервала чисел пополам) наверняка угадать число можно за семь попыток. Игра состоит из пяти партий. После последней партии выводятся результаты.
Назначение программы: игра.
Область применения: ПК, работающий под управлением ОС MicrosoftWindows (версии 9x/2k/XP и более поздних).
1.1 Технические характеристики
По условию задачи, необходимо разработать приложение для ОС MicrosoftWindows – игру. По правилам игры, компьютер будет загадывать число, а пользователю необходимо будет за ограниченное число попыток (6 попыток) его угадать.
Числа пользователь должен будет либо вводить с клавиатуры, либо увеличивать или уменьшать значения числа в поле ввода стрелками. После каждой попытки пользователю необходимо сообщить: больше загаданное число или меньше того, что он ввёл.
Если за 6 попыток пользователю удаётся угадать число, игра завершается. Если число так и не было отгадано, игра также завершается, а пользователю сообщается загаданное число.[1]
Для проверки честности будет использован алгоритм шифрования MD5. Механизм его работы заключается в следующем: после генерации случайного числа, которое пользователю необходимо будет отгадать в процессе игры, генерируется и текстовая строка, по которой можно будет явно определить какое число было загадано (например, «__загадано__:_число___99»).
Эта строка является исходной, а её md5-хэш (последовательность из 32 шестнадцатеричных чисел) будет сообщаться пользователю до начала игры. Данный хэш практически невозможно расшифровать (получить из него исходную строку), что предотвращает возможность получения загаданного числа иными методами, кроме угадывания его, однако для проверки честности пользователю достаточно лично получить из исходной строки md5-хэш (для этого существует множество небольших программ, в том числе и веб-приложений).[2]
Для ведения «базы» достижений игрока (или игроков) в программе будет реализована функция добавления лучших результатов в текстовый файл с возможностью просмотра их в любое время.[3]
В файле будут храниться: имя игрока (вводится пользователем в случае успешной игры), результат (количество попыток, за которые было отгадано число), а также дата и время завершения игры.
1.2 Выбор состава технических и программных средств
Поскольку, согласно условию задачи, необходимо разработать приложение для операционной системы MicrosoftWindows, для написания программы была выбрана интегрированная среда разработки BorlandDelphi версии 7, которая позволяет достаточно быстро создавать приложения за счёт упрощения разработки визуальной части проекта.[4]
Delphi 7 может работать в среде ОС от Windows 95 до Windows XP и Vista. Особых требований к компьютеру система не предъявляет, за исключением того, что процессор должен быть типа Pentium, оперативной памяти - не менее 32 Мбайт и достаточное количество свободной дисковой памяти.[5]
2.1 Разработка программы
При разработке программы «Угадайка» была использована среда программирования BorlandDelphi 7. Проект содержит одну форму – Form1 (см. Рисунок 1). На форме расположены кнопки (TButton) – меню программы (повторяет элементы TMainMenu1), 4 контейнера TPanel и TMainMenu.
Рис. 1 – Окно формы Ugadaika
Свойства формы Form1:
Cобытия формы Form1:
TMainMenu1 – главное меню программы, скрытый элемент управления, содержащий массив раздела меню (см. Рисунок 2).
Рис. 2 – Окно TMainMenu1
1. Элементы TMainMenu1:
N1 : Игра
N2 : Справка
Для элементов меню «О программе» (About) и «Новая игра» (NewGame) назначены «горячие клавиши» - F1 и F2 соответственно. Это сделано как для удобства пользователя, так и согласно устоявшимся традициям написания приложений для ОС MicrosoftWindows. Кнопки TButton10, TButton11, TButton12, TButton13 и TButton14 расположены на форме лишь для удобства управления приложением. Их события полностью повторяют события соответствующих элементов главного меню (точнее, при клике по каждой кнопке инициируется событие соответствующего элемента TMainMenu1), однако управление приложением для пользователя заметно упрощается.[6]
2. Свойства компонента TButton10:
События компонента TButton10:
3. Свойства компонента TButton11:
События компонента TButton11:
4. Свойства компонента TButton12:
События компонента TButton12:
5. Свойства компонента TButton14:
События компонента TButton14:
5. Свойства компонента TButton13:
События компонента TButton13:
Компоненты, относящиеся к различным «частям» игры были размещены на четырёх различных TPanel. Панель является «контейнером» компонентов и элементов управления приложением.[7]
Для упрощения проектирования приложения, однотипные элементы были сгруппированы в массивы элементов. Это позволяет в процессе выполнения программы легко обращаться к ним лишь по индексу, не прибегая к сложным конструкциям кода.[8]
TPanel1 (см. Рисунок 3) содержит компоненты, задействованные в основной игре. Когда свойству Visible присваивается значения true, аналогичное свойство других трёх компонентов TPanel приобретает значение false. Также при этом свойство Align приобретает значение alClient, что позволяет «развернуть» TPanel1 по размеру формы. [9]
Рис. 3 – Компонент TPanel1
6. Массивы из групп компонентов, находящихся на TPanel1:
Свойства компонента TPanel1:
6.1. Свойства компонента TLabel1:
6.2. Свойства компонента TLabel2:
6.3. Свойства компонента TLabel9:
6.4. Свойства компонента TLabel10:
6.5. Свойства компонента AHint(тип – TLabel):
6.6. Свойства компонента TEdit1:
6.7. Свойства массива компонентов AttemptLabel (тип – TLabel):
6.8. Свойства массива компонентовAttemptSpin (тип – TspinEdit):
6.9. Свойства массива компонентов AttemptButton (тип – TButton):
Компонент имеет одно свойство: OnClick – сравнение введённого числа и загаданного, вывод промежуточных либо окончательных результатов игры.
На TPanel2 (см. Рисунок 4) находятся компоненты, задействованные при выводе лучших результатов игры. [10]
Рис. 4 – Компонент TPanel2
7. Массивы из групп компонентов, находящихся на TPanel2:
Свойства компонента TPanel2:
7.1. Свойства компонента TLabel11:
7.2. Свойства компонента TLabel12 и массива компонентов r0 (тип – TLabel):
7.3. Свойства компонента TLabel13 и массива компонентов r1 (тип – TLabel):
7.4. Свойства компонента TLabel14 и массива компонентов r2 (тип – TLabel):
7.5. Свойства компонента TLabel15 и массива компонентов r3 (тип – TLabel):
7.6. Свойства компонента TButton7:
Компонент имеет одно событие – OnClick : при его инициализации Panel2 убирается с экрана. TPanel3 – информационная панель «О программе» (см. Рисунок 5). На ней расположены текстовые метки (TLabel) и кнопка (TButton8) для возвращения в «главное меню» программы.
8. Свойства компонента TPanel3:
Рис. 5 – Компонент TPanel3
8.1. Свойства компонента TLabel56:
8.2. Свойствакомпонента TLabel57:
8.3. Свойствакомпонента TLabel58:
8.4. Свойствакомпонента TLabel59:
8.5. Свойствакомпонента TLabel60:
8.6. Свойствакомпонента TLabel61:
8.7. Свойствакомпонента TLabel62:
8.8. Свойства компонента TButton8:
Компонент имеет одно событие – OnClick : при его инициализации Panel3 убирается с экрана.
TPanel4 – панель, содержащая информацию о правилах игры (см. Рисунок 6). Содержит всего 3 компонента типа TLabel и одну кнопку – TButton9.
Рис. 9 – Компонент TPanel4
9. Свойства компонента TPanel4:
9.1. Свойствакомпонента TLabel63:
9.2. Свойствакомпонента TLabel64:
9.3. Свойствакомпонента TLabel65:
9.4. Свойства компонента TButton9:
Компонент имеет одно событие – OnClick : при его инициализации Panel3 убирается с экрана.
2.2 Спецификация программы
Исполняемый файл программы носит название Ugadaika.exe, его размер составляет 453632 байт, файл расположен в корневом разделе носителя. Исходный код проекта находится в файле Ugadaika.pas (Приложение А), размер файла составляет 12976 байт (содержит 559 строк кода).