Разработка программы игры в 'Кости'
Основные данные о работе
Версия
шаблона
|
2.1
|
Филиал
|
Нижегородский
|
Вид
работы
|
Курсовая
работа
|
Название
дисциплины
|
Программирование
на языке высокого уровня
|
Тема
|
Разработать
программу игры «в кости»
|
Фамилия
студента
|
Мичасов
|
Имя
студента
|
Дмитрий
|
Отчество
студента
|
Сергеевич
|
№
контракта
|
09200090601031
|
Содержание
Введение
.
Разработка эскизного и технического проектов программы
.
Текст программы
.
Описание и внедрение программы
Заключение
Глоссарий
Список
использованных источников
Приложения
Введение
Слово “компьютер“ означает “ вычисление “, т. е.
устройство для вычислений.
Слово компьютер является производным
от английских слов {to computet}}, computer, которые переводятся как
«вычислять», «вычислитель» (английское слово, в свою очередь, происходит от
латинского computār
- «вычислить»).
Первоначально в английском языке
<#"552445.files/image001.gif">
Рисунок 1 - грани кубиков.
Следует обратить внимание на то что
объемность граней достигается двумя путями:
) нарисованные изображения имеют
сложную цветовую насыщенность, за счет чего создается впечатление объемности;
) углы каждой грани закрашены цветом
(черным), который в программе будет интерпретироваться как прозрачный.
Организация входных и выходных
данных.
Входных данных у программы нет.
Выходными данными является
совокупность отображаемой информации на экране персонального компьютера.
Выбор состава технических и
программных средств.
Программа занимает 1 мб. жесткого
диска. Программа функционирует под ОС Win95 и выше. Разрешение экрана не менее
800*600@256. Обязателен манипулятор типа «Мышь».
Источники, использованные при
разработке
При разработке использовалась
литература по программированию, а также анализ характеристик программ -
аналогов.
Разработка программы
Для разработки приложения игры
“Кости” используется среда визуального программирования “Delphi. Проект
программы содержит три окна:
. Form1 - главное окно программы.
. FrmRules- окно, содержащее правила
игры.
. AboutBox- окно, содержащее
информацию о программе.
Окно Form1.
Для организации меню используется
компонент tMainMenu. Текущий счет игры выводится в компонент tLabel. На панели
(tPanel) находятся два поля ввода tSpinEdit, позволяющие вводить целые числа в
нужном диапазоне. Кнопка "Бросить" (tBitBtn) запускает процесс
игровой сессии.
Компонент tImageList представляет
собой хранилище графических изображений одного размера. Кроме того, данный
компонент инкапсулирует в себе набор методов по обработке графической
информации. Например, в нем можно указать цвет, который будет считаться
прозрачным при отображении.
Окно FrmRules
В данном окне находятся два
компонента: tBitBtn и tRichEdit. TRichEdit позволяет хранить в себе текстовую
информацию с форматированием.
Окно AboutBox
Данное окно является стандартным для
Delphi и взято из депозитария.
В программе кроме сервисных функций
только одна процедура. Она вызывается по нажатию кнопки "Бросить"
В начале процедуры проверяется
допустимость введенных значений ставки и числа на которое пользователь
поставил. Если хотя бы одно из чисел имеет недопустимое значение, то
пользователю выдается соответствующее сообщение и процедура заканчивает свою
работу.
Далее происходит цикл вращения
кубиков. В этом цикле случайным образом выбираются два числа в диапазоне от 0
до 5, соответствующих индексам картинок граней. Затем вызывается процедура
перерисовки экрана, в которой на форму выводится соответствующие грани. После
окончания цикла вращения происходит суммирование очков на обоих кубиках. После
чего это число сравнивается со ставкой пользователя. В конце процедуры в
зависимости от того выиграл он или нет изменяется суммарный счет и выводится
сообщение о результатах текущего броска.
Спецификация программы.
Программа написана на Delphi 6.
Файлы проекта (Приложения А) представлены в таблице 1.
Таблица 1.
Имя
файла
|
Тип
файла
|
Описание
|
about.dfm
|
Файл
формы
|
О
программе
|
about.pas
|
|
Kosti.cfg
|
Файл
конфигурации проекта
|
|
Курсовая.doc
|
Документ
Word
|
Этот
файл
|
Kosti.dof
|
Файл
параметров проекта
|
|
Kosti.dpr
|
Файл
проекта
|
|
Kosti.dsk
|
Файл
конфигурации проекта
|
|
Kosti.res
|
Файл
ресурсов
|
|
Main.dfm
|
Файл
формы
|
Главная
форма
|
Main.pas
|
Файл
программного модуля
|
|
rules.dfm
|
Файл
формы
|
Правила
игры
|
rules.pas
|
Файл
программного модуля
|
|
RusDlg.pas
|
Файл
программного модуля
|
Русифицированные
диалоги
|
. Текст программы
Текст программы
Модуль : about.pas Всего строк : 35
unit about;Windows, SysUtils,
Classes, Graphics, Forms, Controls, StdCtrls,, ExtCtrls;= class(TForm):
TPanel;: TImage;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TLabel;:
TLabel;: TLabel;: TLabel;
{ Private declarations }
{ Public declarations };: TAboutBox;
{$R *.dfm}.
Модуль : Kosti.dpr
Всего
строк
: 18 Kosti;,in 'Main.pas' {Form1},in 'RusDlg.pas',in 'about.pas' {AboutBox},in
'rules.pas' {FrmRules};
{$R
*.res}.Initialize;.CreateForm(TForm1, Form1);.CreateForm(TAboutBox,
AboutBox);.CreateForm(TFrmRules, FrmRules);.Run;
end.
Модуль : Main.pas Всего строк : 150
unit Main;, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,, Menus, StdCtrls, Buttons, Spin,
ExtCtrls, ImgList;= class(TForm): TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;:
TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TLabel;: TPanel;: TLabel;:
TSpinEdit;: TBitBtn;: TImageList;: TLabel;: TSpinEdit;:
TBitBtn;GameNewClick(Sender: TObject);BitBtn1Click(Sender:
TObject);FormCreate(Sender: TObject);FormPaint(Sender: TObject);HelpAboutClick(Sender:
TObject);HelpRuleClick(Sender: TObject);GameExitClick(Sender: TObject);
{ Private declarations }
{ Public declarations };:
TForm1;:integer; : integer=-1; : integer=-1; rusdlg,about, rules;
{$R
*.dfm}TForm1.GameNewClick(Sender: TObject);:= 100; .Caption :=format('Ваша
сумма
:%d',[Score]);.visible:=true; .MaxValue := 100;.Show;
;TForm1.BitBtn1Click(Sender: TObject);i:integer;not (SpinNumb.Value in [2..12])
then
begin('Число должно быть от 2 до 12');
exit;;Spin.Value <1 then
begin('Ставка должна быть больше 0');
exit;;Spin.Value > Score then
begin('Ставка должна быть меньше текущего
счета');
exit;;i:=1 to 10 do :=random(6);
:=random(6);(nil); (100); ;:=t1+t2+2; ((i<7) and (SpinNumb.Value<7))
((i>7) and (SpinNumb.Value>7)) then('Вы
выиграли!!'#13'Ставка
%d'#13'Выигрыш
%d',[Spin.value,Spin.value]);(Score,Spin.value);elsei=SpinNumb.Value then ('Вы
выиграли!!'#13'Ставка
%d'#13'Выигрыш
%d',[Spin.value,Spin.value*4]);(Score,Spin.value*4); .Caption :=
IntToStr(Score);else('Вы Проигали!!'#13'Ставка
%d',[Spin.value]);(Score,Spin.value);;.Caption :=format('Ваша
сумма
:%d',[Score]);
if score=0 then ('Вы проигали!!'#13'Остаток на
счету - 0.');
t1:=-1;.Hide; .Hide;; ;.MaxValue :=
Score; spin.Value>score then Spin.Value := score;;TForm1.FormCreate(Sender:
TObject);; ;TForm1.FormPaint(Sender: TObject);not Panel.Visible then exit;t1=-1
then exit; .Draw(canvas,75,50,t1); .Draw(canvas,155,50,t2); ;
TForm1.HelpAboutClick(Sender:
TObject);.Show; ;TForm1.HelpRuleClick(Sender: TObject);.Show; ;TForm1.GameExitClick(Sender:
TObject);; ;.
Модуль : rules.pas
Всего
строк
: 35 rules;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,,
StdCtrls, Buttons, ComCtrls;= class(TForm): TRichEdit;:
TBitBtn;FormCreate(Sender: TObject);
{ Private declarations }
{ Public declarations };: TFrmRules;
{$R
*.dfm}TFrmRules.FormCreate(Sender: TObject);.SelStart:=0;
.SelLength:=14;.SelAttributes.Size:=16; .SelAttributes.Style:=[fsBold];;.
Модуль :
RusDlg.pas Всего строк
: 50 RusDlg;forms,windows,SysUtils;Notify(Msg: string); overload;Notify(Msg:
string; const Args: array of const); overload;Confirm(Msg: string): Boolean;
overloadConfirm(Msg: string; const Args: array of const): Boolean;
overload;Error(Msg: string); overload;Error(Msg: string; const Args: array of
const);overload;CrError(Msg: string); Confirm(Msg: string): Boolean;
overload;:= Application.MessageBox(PChar(Msg), 'Подтвердите',
MB_ICONQUESTION or MB_YESNO) = IDYES;;Confirm(Msg: string; const Args: array of
const): Boolean;overload;:= Confirm(format(msg,args));;Notify(Msg: string);
overload;.MessageBox(PChar(Msg), 'Результат',
MB_ICONINFORMATION or MB_OK);;Notify(Msg: string; const Args: array of const);
overload;(format(msg,Args));;Error(Msg: string);
overload;.MessageBox(PChar(Msg), 'Ошибка',
MB_ICONERROR or MB_OK);;CrError(Msg: string);.MessageBox(PChar(Msg), 'Ошибка',
MB_ICONERROR or MB_OK);;;Error(Msg: string; const Args: array of const);
overload;(format(msg,Args));
end;.
. Описание и внедрение программы
Описание программы
Данная программа является игровой. Ее реализация
имитирует игру в кости. Программа предназначена для релаксации персонала в
нерабочее время.
Кости - одна из древнейших игр.
Инструментом для игры являются кубики
<#"552445.files/image005.gif">
Рисунок 1 - начало игры.
После начала новой игры вид окна
будет как показано на рисунке 2.
Рисунок 1 - В процессе игры.
Тестирование программы
Основным методом обнаружения ошибок
при отладке программ является их тестирование. Для тестирования применяются
методы, предусматривающие упорядочение и систематизацию тестов по различным
параметрам. При неупорядоченном тестировании исходные данные, имитирующие
внешнюю среду, случайным образом генерируются во всем диапазоне возможного
изменения параметров. При этом многие значения исходных данных характеризуются
малой вероятностью обнаружения ошибок. В то же время данные, наиболее важные с
позиции реального использования программ и возможности обнаружения ошибок могут
оказаться неохваченными в процессе неупорядоченного тестирования.
При упорядоченном тестировании
используются следующие методы: статический и динамический. При статическом
(ручном) тестировании проверка правильности программы выполняется без
выполнения программы путем формального анализа текста программы на языке
программирования.
Следующим этапом отладки является
динамическое тестирование программы. В процессе такого тестирования проверяется
исполнение программы, обработка исходных данных с учетом времени их
поступления.
Внедрение игры
Область внедрения программы домашние
и рабочие персональные компьютеры.
Минимальные требования: компьютер
Pentium 166, 128 Mb оперативной памяти, 800 Кбайт свободного пространства на
жестком диске, операционная система Windows 9x/NT/Me/2000/Xp, Windows
совместимая мышь.
Заключение
Игра - основной вид деятельности
ребёнка. С. Л. Рубинштейн <#"552445.files/image007.gif">
1.