Оглавление
Введение 3
1. Разработка эскизного и технического проектов программы 5
1.1. Назначение и область применения 5
1.2. Технические характеристики 5
1.2.1. Постановка задачи 5
1.2.2. Описание алгоритма 7
1.2.3. Организация входных и выходных данных 13
1.2.4. Выбор состава программных и технических средств 13
1.3. Источники, использованные при разработке. 13
2.Разработка рабочего проекта 14
2.1. Разработка программы 14
2.2. Спецификация программы 34
2.3. Текст программы 36
2.4. Описание программы 36
2.5. Тестирование программы 38
3. Внедрение 39
Заключение 43
Библиографический список 44
Приложение 45
Введение.
При проектировании данной курсовой работы была решена задача по разработке приложения в Delphi. Delphi – визуальная среда проектирования, в основе которой лежит язык – Object Pascal. Delphi позволяет разрабатывать приложения работающие в операционной системе Windows. Программа, описанная в этом проекте, создана на Delphi 5.
Внешний вид среды программирования Delphi отличается от внешнего вида других языков программирования, в которых разрабатываются приложения под Windows. Borland Pascal for Windows 7.0, Word for Windows эти языки отличаются спецификацией – MDI (Multiple Document Interface) – определяет особый способ управления нескольких дочерних окнах внутри одного большого окна. Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон.
После запуска Delphi 5 на экране появляются сразу четыре окна:
Главное окно – Delphi 5 - Project 1.
Окно стартовой формы – Form 1.
Окно редактора свойств объектов – Object Inspector.
Окно редактора кода – Unit1.pas.
Создание приложений в Delphi можно разделить на два этапа: создание окна, то есть помещение необходимых компонентов на форму; и написание кода программы.
Целью этого проекта является создать приложение представляющее собой игру «Кости». В этой программе использованы лишь некоторые возможности Delphi.
Задание на курсовую работу
«Алгоритмические языки и программирование»
Студент группы: ОИН - 309 - 11
Вася Пупкин.
Направление: «Информатика», № контракта: 55535356595954584
Тема: Разработка приложения для Windows, представляющего собой компьютерную игру «Кости».
Условие задачи:
Разработать программу, моделирующую игру «Кости». Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход. Программа с помощью датчика случайных чисел дважды выбирает числа от 1 до 6 (“бросает кубик”, на гранях которого цифры от 1 до 6). Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку. Если сумма выпавших цифр больше 7 и играющий задумал число большее 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка. Ставка проиграна, если не имеет место ни одна из описанных ситуаций. В начальный момент у играющего 100 очков. В программе должно присутствовать графическое изображение поверхности кубика при каждом ходе игрока.
Задание выдано __________________
1. Разработка эскизного и технического проектов программы
1.1. Назначение и область применения.
В данном задании необходимо разработать программу представляющую собой игру. Программа предназначена для развлечения. Область применения: досуг программиста. Поскольку ставится задача разработать приложение под Windows, то использоваться программа может только под управлением Windows 9x.
1.2. Технические характеристики.
1.2.1. Постановка задачи
В условии задачи указывается на необходимость использования датчика случайных чисел. Программа дважды («бросает кости») генерирует число от 1 до 6. Для этого используется генератор случайных чисел – процедура Randomize, и функция random(6). Переменная, отвечающая за выпавшее число, после присваивания ей функции “random(6)” будет в диапазоне от 0 до 5, поэтому к ней необходимо прибавить единицу. Например: а:=random(6)+1; (1<a<6).Необходимо отметить, что если в тексте программы перед использованием выше указанной функции не прописать: Randomize; (не «включить» генератор случайных чисел) значения функции random(6) будут повторяться каждый раз при запуске программы.
Следующим условием является вывод графического изображения поверхности кубика при каждом ходе игрока. Для решения этой задачи с помощью встроенной в Delphi 5.0 программы “Image Editor” был создан файл ресурсов «к.res». Файл ресурсов к.res содержит восемь рисунков (восемь растровых изображений – Bitmap), два из которых используются для красивого оформления приложения. Остальные отображают грани кубика. В программе объявлены переменные типа TBitmap.В них, с помощью метода LoadFromResourceName загружаются изображения из файла ресурсов. Далее эти переменные изображаются на компонентах – Image. Метод LoadFromResourceName имеет два параметра идентификатор программы и имя ресурса. В качестве идентификатора программы используется глобальная переменная Hinstance, имя ресурса должно быть представлено в виде строковой константы. Для того чтобы ресурсы были доступны программе необходимо в текст программы добавить директиву компилятору {$R k.res}. Эта строка помещается в начале текста модуля. При разработке приложений Delphi так же создаёт файл ресурсов, который содержит картинку исполняемого файла.
Следующим условием задачи является, определение выигрыша или проигрыша ставки. Для этого применена конструкция if … else. В данной задаче выигрыш ставки соответствует условиям:
Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку.
Если сумма выпавших цифр больше 7 и играющий задумал число большее 7, он также выигрывает сделанную ставку.
Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка. Все другие ситуации являются проигрышными.
При выполнении данного проекта условие задачи было дополнено.
Во-первых, чтобы игра заканчивалась не только банкротом игрока – введено условие победы в игре. Если игрок набрал тысячу или больше очков игра заканчивается победой игрока. Это реализовано с помощью конструкции if … else.
Во-вторых, в процессе игры (перед выводом графического изображения поверхности кубика) выводится движущееся изображение кубика. Благодаря чему у играющего создаётся впечатление, что он видит брошенные кости (движущиеся кости). Для этого с помощью программы Macromedia Flash MX PRO 2004 7.01 были созданы AVI-файлы. При воспроизведении этих файлов можно наблюдать, как меняется изображение поверхности кубика – эффект “брошенных костей”. При запуске, приложение запрашивает путь к AVI-файлам (прилагаются к проекту). В дальнейшем, после нажатия кнопки «Играть» (после броска кубиков), эти AVI-файлы проигрываются, после чего выводится изображение кубика (кости “остановились”). Для воспроизведения используются компоненты – MediaPlayer. Экранами для воспроизведения служат компоненты – Panel. Компоненты Panel и Image(компонент для вывода изображений) расположены в одном месте и в зависимости от действия программы (воспроизведение или вывод изображений) поочерёдно становятся видимыми – невидимыми. Это происходит так: игрок (после ввода числа и ставки) нажимает кнопку «Играть» компонент Image становится невидимым компонент Panel – видимым, воспроизводятся AVI-файлы, затем компонент Panel становится невидимым компонент Image – видимым, выводятся изображения кубиков.
В проекте использованы приемы, сопутствующие дружелюбному интерфейсу.
1.2.2. Описание алгоритма
При разработке программы необходимо решить ряд задач. Решение каждой задачи можно представить в виде отдельного блока (части), совокупность которых образует программу в целом. Обобщенная схема алгоритма представлена на рис.1.
Ввод пути к AVI-файлам и проверка правильности ввода. (Рис.2.)
Ввод числа и ставки, проверка правильности ввода. Генерация случайных чисел. Воспроизведение AVI-файлов и вывод графических изображений. (Рис.3.)
Определение проигрыша или выигрыша ставки. (Рис.4.)
Определение победы или поражения в игре. (Рис.5.)
Блок 1
Блок 2
Блок 3
Блок 4
Рис.1. Обобщенная схема алгоритма.
Ввод пути к AVI-файлам производится на главной форме (в диалоговом окне Project Options – Main Form), которая открывается после запуска приложения. Здесь же программа проверяет правильность этого пути с помощью инструкции Try. В случае ошибки (исключения “except”) программа выводит сообщение об этом и предлагает пользователю попробовать ещё, пользователь исправляет ошибку или выходит из программы. Если ошибки нет, открывается основная форма (игровое поле).
Да Нет
Открытие основной формы
Рис.2. Ввод пути и обработка возможных ошибок (блок 1).
«Выпадение» случайных чисел происходит с помощью генератора случайных чисел. Воспроизводятся AVI-файлы, затем в соответствии со случайными числами выводятся графические изображения кубиков.
Да
Да
Да
Да
st:=strtoint(edit2.text);
chislo:=strtoint(edit1.text)
Да
Да
r1.LoadFromResourceName(hinstance,'b'+inttostr(k1))
r2.LoadFromResourceName(hinstance,'b'+inttostr(k2));
image1.Canvas.Draw(0,0,r1);
image2.Canvas.Draw(0,0,r2);
Рис.3. Ввод числа и ставки, обработка ошибок ввода
Случайные числа вывод изображений (блок 2).
Определение проигрыша или выигрыша ставки, происходит путём сравнения числа (введенным пользователем) и сумой двух «случайных чисел». Если сумма двух «случайных чисел» равна числу загаданным пользователем, то ставка, увеличивается в четыре раза. Если сумма двух «случайных чисел» меньше семи и число, заданное пользователем меньше семи или сумма двух «случайных чисел» больше семи и число, заданное пользователем больше семи, то игрок выигрывает ставку. В остальных случаях игрок проигрывает ставку.