Bank:=bank+4*st
Да
Да
Bank:=bank+st
Bank:=bank-st
Рис.4. Определение проигрыша или выигрыша ставки (блок 3).
Определение победы или поражения в игре осуществляется путём сравнения количества очков в банке игрока с нолём и тысячей. Если количество очков равно 0 игрок проиграл. Он может начать заново или уйти побежденным. Если количество очков больше или равно 1000 игрок победил, о чём сообщает диалоговое окно.
Да
Да
Рис.5. Определение победы или поражения в игре (блок 4).
1.2.3. Организация входных и выходных данных
В данной программе предусматривается использование следующих входных данных: пути к AVI-файлам, число, загаданное игроком, ставка. Данные число и ставка с помощью функции StrToint() вносятся в переменные chislo и st (типа byte) соответственно. Входные данные - пути к файлам, присваиваются свойству FileName медиаплееров. Выходная данная – отображение текущего количества очков в банке игрока. Очки отображаются в виде строки, чтобы преобразовать число в строку использовалась функция IntTostr.
1.2.4. Выбор состава программных и технических средств
Для решения данной задачи целесообразно применить интегральную среду разработки программ – Delphi 5. Среда Delphi позволяет достаточно быстро разрабатывать приложения для Windows. Возможностей Delphi в визуальном оформлении окон программ с избытком достаточно для создания игры «Кости». Для полноценной работы Delphi 5 достаточно:
Pentium 100;
ОЗУ – не менее 8 Мб;
Жесткий диск не менее 500 Мб;
1.3. Источники, использованные при разработке
При разработке данной программы использовались материалы: рабочего учебника – Юнита №5 Лабзина Т.А.. Система программирования Delphi. Москва 2001; Самоучителя – Основы программирования в Delphi7 Никита Культин Санкт-Петербург 2003.
2.Разработка рабочего проекта
2.1. Разработка программы
Для разработки приложения используется визуальная среда программирования Delphi 5. Проект программы содержит пять окон:
Aboutbox 1 – окно справки (о программе).
Aboutbox 2 – правила игры.
Aboutbox 3– ввод пути к AVI-файлам. (main form)
Aboutbox 4 – сообщение об ошибке ввода пути к AVI-файлам.
Form 1 – основное окно программы (игровое поле).
Окно form1. Основное окно программы (игровое поле).
1
2
3
4 17
5
6 16
7 15
8 14
9 10 11 12 13
Компонент Form1.
Свойства:
Bordericons (biMaximize) – False.
BorderStyle – bsSingle;
Caption – Кости;
Color – clTeal;
Position – poDesktopCenter;
Visible – False;
События:
OnActivate – присваиваются начальные значения.
OnClose – запрос подтверждения на выход.
OnMouseMove – для красивого оформления компонентам присваиваются следующие значения:
button1.Default:=false;
button2.Default:=false;
button3.Default:=false;
button4.Default:=false;
edit1.Color:=clwindow;
edit2.color:=clwindow;
1 – компонент MainMenu (класс TMainMenu)
Свойства:
Items
Меню(N1) Справка(N2)
Играть(N3) Правила(N7) – ShortCut – F1.
Заново(N4) О программе(N8) – ShortCut – F2
Выход(N6)
Свойство Caption N6 (меняется во время выполнения программы).
Свойство Enabled N3 (меняется во время выполнения программы).
События: нет.
2 – Компонент Label1 (класс TLabel)
Свойства:
Caption – Введите число;
Font – жирный, размер 10;
События: нет.
3 – Компонент Edit1. (класс TEdit)
Свойства:
Hint – Число от 2 до 12;
MaxLength – 2 (значение меняется во время выполнения программы);
События:
OnKeyPress – защита от ввода недопустимых символов.
OnMouseMove – для красивого оформления. Свойству Color присваивается – clyellow.
4 – Компонент Label2 (класс TLabel)
Свойства:
Caption – Сделайте ставку;
Font – жирный, размер 10;
События: нет.
5 – Компонент Label3 (класс TLabel)
Свойства:
Caption – Банк;
Font – жирный, размер 10;
События: нет.
6 – Компонент L4 (класс TLabel)
Свойства:
Caption – 100 (меняется во время выполнения программы);
Font – жирный, размер 10, цвет красный;
Name – L4;
События: нет.
7 – Компонент Edit2 (класс TEdit)
Свойства:
Hint – Не ставьте больше чем в банке;
MaxLength – 3;
События:
OnKeyPress – защита от ввода недопустимых символов.
OnMouseMove – для красивого оформления. Свойству Color присваивается – clred;
8 – Компонент Button2 (класс TButton)
Свойства:
Caption – Заново;
Cursor – crHandPoint;
Font – жирный, размер 10;
Hint – Начать сначала;
События:
OnClick – присваиваются начальные значения (игра начинается заново);
OnMouseMove – для красивого оформления. Свойству Default присваивается значение True;
9 – Компонент Button3 (класс TButton)
Свойства:
Caption – Выход;
Cursor – crHandPoint;
Font – жирный, размер 10;
Hint – Exit;
События:
OnClick – Вызывается процедура закрытия формы;
OnMouseMove – для красивого оформления. Свойству Default присваивается значение True;
10 – Компонент Button1 (класс TButton)
Свойства:
Caption – Играть;
Cursor – crHandPoint;
Font – жирный, размер 10;
Hint – Бросить кости;
События:
OnClick – Проверяется правильность ввода числа и ставки, воспроизводятся AVI-фалы, генерируются случайные числа, выводится графическое изображение кубиков, определяется проигрыш или выигрыш ставки, определяется проигрыш или выигрыш в игре.;
OnMouseMove – для красивого оформления. Свойству Default присваивается значение True;
11 – Компонент Mp1 (класс TmediaPlayer)
Свойства:
Display – Panel2;
Name – Mp1;
Visible – False;
События: нет.
12 – Компонент L5 (класс TLabel)
Свойства:
Caption – (меняется во время выполнения программы);
Font – жирный, размер 10, цвет красный;
Name – L5;
События: нет.
13 – Компонент Mp2 (класс TmediaPlayer)
Свойства:
Display – Panel1;
Name – Mp2;
Visible – False;
События: нет.
14 – Компонент Button4 (класс TButton)
Свойства:
Caption – Играть;
Cursor – crHandPoint;
Font – жирный, размер 10;
Hint – Всё на кон.
События:
OnClick – Выполняется оператор присваивания: edit2.Text:=l4.Caption; Все очки ставятся на кон
OnMouseMove – для красивого оформления. Свойству Default присваивается значение True;
15 – Компонент Panel1 (класс TPanel)
Свойства:
Caption – ;
Height – 105;
Width – 105;
События: нет.
16 – Компонент Panel2 (класс TPanel)
Свойства:
Caption – ;
Height – 105;
Width – 105;
События: нет.
17 – Компонент Label4 (класс TLabel)
Свойства:
Caption – Выпавшие кости;
Font – жирный, размер 14;
События: нет.
Также на форме присутствуют компоненты:
TImage1 и TImage2 (закрыты компонентами TPanel1 и TPanel2 соответственно)
Свойства:
Height – 105;
Width – 105
Visible – меняется во время выполнения программы.
Panel3 – Panel9 эти компоненты не оказывают влияния на ход выполнения программы. Они лишь служат своеобразным орнаментом. Изменённые свойства – размер и цвет.
Окно AboutBox1 – окно справки (о программе).
1
2
3
4
5
6 7
Компонент AboutBox1.
Свойства:
Caption – О программе;
Color – clHighlight;
Name – AboutBox1;
Position – poMainFormCenter;
События: нет
1 – Компонент L1 (класс TLabel)
Свойства:
Caption - (меняется программно);
Font – размер 10, подчеркнутый, цвет темно-синий;
ParentColor – True;
События: нет;
2 – Компонент Image (класс TImage)
Свойства:
Изменённых свойств нет (только загружена картинка);
События: нет.
3 – Компонент Label1 (класс TLabel)
Свойства:
Caption – Среда разработки ------ Delphi 5;
Font – размер 10, подчеркнутый, цвет темно-синий;
ParentColor – True;
События: нет.
4 – Компонент Label2 (класс TLabel)
Свойства:
Caption – Цифровая подпись отсутствует;
Font – размер 10, подчеркнутый, цвет темно-синий;
ParentColor – True;
События: нет.
5 – Компонент Label3 (класс TLabel)
Свойства:
Caption – Версия -------- 1.1;
Font – размер 10, подчеркнутый, цвет темно-синий;
ParentColor – True;
События: нет.
6 – Компонент OkButton (класс TButton)
Свойства:
Изменены размеры.
События: нет
7 – Компонент Panel1 (класс TPanel)
Свойства:
Color – clSilver;
События: нет
Окно AboutBox2 – окно правила игры.
1 8 7
23 6
4 5
Компонент AboutBox2
Свойства:
Bordericons (biSystemmenu) – False.
Caption – Правила игры;
Color – clHighlight;
Name – AboutBox2;
Position – poMainFormCenter;
События:
OnActivate – Для красоты выводим картинку, также выводим информацию (правила игры).
OnMouseMove – Вызываем процедуру FormActivate, чтобы вернуть первоначальный вид окну после события OnMouseMove на кнопке OK.
1 – Компонент Lab2 (класс TLabel)
Свойства:
Caption – (меняется во время работы программы);
Font – размер 10;
Name – lab2;
ParentColor – True;
События: нет;
2 – Компонент Image (класс TImage);
Свойства:
Height – 73;
Width – 73;
События: нет;
3 – Компонент Lab1 (класс TLabel)
Свойства:
Caption – Удачи!!!;
Font – размер 40, цвет красный;
Name – lab1;
ParentColor – True;
Visible – False (меняется во время работы программы);
События: нет;
4 – Компонент OkButton (класс Tbutton)
Свойства:
Из всех свойств изменены только размеры.
События:
OnMouseMove – изменяем внешний вид окна, желаем удачи игроку.
5 – Компонент Lab4 (класс TLabel)
Свойства:
Caption – Выиграть;
Font – размер 12, цвет травяной;
Name – lab4;
ParentColor – True;
Visible – False (меняется во время работы программы);
События: нет;
6 – Компонент Image1 (класс TImage);
Свойства:
Height – 105;
Visible – False (меняется во время работы программы);
Width – 105;
События: нет;
7 – Компонент Lab3 (класс TLabel)
Свойства:
Caption – Попробуй;
Font – жирный, размер 12, цвет желтый;
Name – lab3;
ParentColor – True;
Visible – False (меняется во время работы программы);
События: нет;
8 – Компонент Panel (класс TPanel)
Свойства:
Caption - ;
Color – clScrollBar;
События: нет.
Окно Aboutbox 3– ввод пути к AVI-файлам. (main form)
1 19
18
2
3 17
4 5 16
6
7 15
8
9 14
10
13
11
12
Компонент AboutBox3
Свойства:
Bordericons (biSystemmenu) – False.
BorderStyle – bsSingle;
Caption – Information;
Color – clGray;
Name – AboutBox3;
Position – poDesktopCenter;