Велика бібліотека української літератури
» » Разработка программы, моделирующую игру Кости

Разработка программы, моделирующую игру Кости

Содержание
Введение. 3
Основная часть. 5
1 Разработка эскизного и технического проектов программы (ГОСТ 19.404-79)5
2 Разработка рабочего проекта. 8
3 Внедрение. 22
Заключение. 23
Глоссарий. 25
Список использованных источников. 26
Приложения. 27
Введение
В связи с развитием информационно-коммуникационных технологий в последнее время резко возрос интерес к программированию. В данное время среди пользователей персональных компьютеров наиболее популярно семейство операционных систем Windows.
Несколько лет назад единственным средством разработки программ, работающих в среде Windows, был BorlandC++ forWindows, ориентированный на профессионалов, обладающих серьезными знаниями и опытом.
Бурное развитие вычислительной техники? Потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на “быструю разработку”, среди которых можно выделить BorlandDelphi и MicrosoftVisualBasic[6, с. 11]. В основе систем быстрой разработки лежит технология визуального проектирования и событийного программирования.
Delphi – это среда быстрой разработки, в которой в качестве языка программирования используется строго типизированный объектно-ориентированный язык Delphi, в основе которого лежит Object Pascal.
В настоящее время программистам стала доступна очередная версия пакета Delphi – Borland Delphi 7 Studio. Система Delphiпозволяет писать как крохотные программы и утилиты для персонального использования, так и корпоративные системы, работающие с базами данных на разных платформах, Интернет-решения и коммерческие игры, распределенный COM/CORBA/SOAP-приложения и всевозможные Web-службы. При этом обеспечивается совместимость приложений при выходе новых версий Delphi– как друг с другом на уровне исходных текстров, так и с модифицированными версиями стандартных протоколов и технологий благодаря библиотеке независимых и легко настраиваемых компонентов[3, с. 15].
Цель: Разработать программу, моделирующую игру “Кости”.
Смысл игры состоит в следующем. Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход. Программа с помощью датчика случайных чисел дважды выбирает числа от 1 до 6 (“бросает кубик”, на гранях которого цифры от 1 до 6). Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку. Если сумма выпавших цифр больше 7 и играющий задумал число большее 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка. Ставка проиграна, если не имеет место ни одна из описанных ситуаций. В начальный момент у играющего 100 очков. В программе должно присутствовать графическое изображение поверхности кубика при каждом ходе игрока.
Основная часть
1 Разработка эскизного и технического проектов программы (ГОСТ 19.404-79)
1.1. Назначение и область применения
Область применения: досуг пользователя. Программа представляет собой модулятор игры «Кости», которая помогает пользователю оторваться от текущих дел и передохнуть, не отходя от персонального компьютера. Программа проста в применении. Данная программа полноценно функционирует только под управлением Windows 9x/Me/NT/2000/XP.
1.2. Постановка задачи и разработка алгоритма решения задачи
Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку. Если сумма выпавших цифр больше 7 и играющий задумал число большее 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка (рис.1. Приложение А).
Условие задачи игры «Кости» указывает на необходимость называть любое число в диапазоне от 2 до 12. Программа с помощью датчика случайных чисел дважды выбирает числа от 1 до 6. В соответствии с рисунком 1 представлено главное окно программы.
Рисунок 1. Главное окно программы.
1.2.2 Описание алгоритма
В программе решаются такие задачи как:
1.Задаем сумму выпавших кубиков.
2. Заполняем список ставок.
3. Выбор граней кубиков с помощью датчика случайных чисел.
4.Ввывод на экран результата позиции.
Схему алгоритма программы смотрите в приложении А.
1.2.3 Выбор состава технических и программных средств
Для разработки данной программы использовалась интегральная среда разработки Delphi 7[1] .Среда Delphi 7 позволяет разрабатывать приложения для Windows. Технические характеристики компьютера Pentium 133 MHz, Ram 16 Mb, HDD 4.3 Gb. Именно эти параметры создают условия для полноценной работы IDEDelphi 7 и программ созданных в этой среде. Дополнительные средства не требуются.
2 Разработка рабочегопроекта
2.1 Разработка программы
Для разработки приложения используется среда визуального программирования Delphi. В написание программы использовались компоненты из разделов Standard, Additional. Проект программы содержит одно окно Form1. В соответствии с рисунком 2 представлено главное окно программы.
Рисунок 2 - Главноеокнопрограммы.
1 – Form 1, 2 – MainMenu 1, 3 – Label 5, 4 – Label 7, 5 – Label 3, 6 – Label 4, 7 – Label 6, 8 – Label 1, 9 – Label 2, 10 – ComboBox 2, 11 – ComboBox 1, 12 – Image 1, 13 – Image 2, 14 – Image 3, 15 – BitBtn 1.
1 – компонент Form1:
Свойства:
Caption – Кости;
Border – bsSingle;
BiSystemMenu – False;
BiMinimaze – False;
BiMaximaze – False;
BiHelp – False;
Height – 374;
Width – 441.
2- компонентTMainMenu 1:
Свойства:
Items:
Файл (N1)
Новая игра (N2) Выход (N3)
События:
Для N1 - событие TMainMenu;
N3Click – закончить работу с приложением;
N2Click – перейти к работе с приложением;
3 – компонент Label5:
Свойства:
Caption – ‘Ваше число’;
Font - Times New Roman, 14, clWindowText.
4 – компонент Label7:
Свойства:
Caption – ‘Ваша ставка’;
Font - Times New Roman, 14, clWindowText.
5 – компонент Label 3:
Свойства:
Caption – ‘Ваши очки’;
Font - Times New Roman, 14, clWindowText.
6 – компонент Label 4:
Свойства:
Caption – ‘00’;
Font - Times New Roman, 14, clWindowText.
7 – компонент Label 6:
Свойства:
Caption – ‘Подтвердить ставку’;
Font - Times New Roman, 16, clRed.
8 – компонент Label 1:
Свойства:
Caption – ‘Сумма’;
Font - Times New Roman, 14, clWindowText.
9 – компонент Label 2:
Свойства:
Caption – ‘00’;
Font - Times New Roman, 14, clWindowText.
10 – компонентComboBox2:
Left – 16;
Top – 36;
Width – 113;
Height – 21;
Style – csDropDownList;
ItemHeight – 13;
TabOrder – 1.
11 – компонентComboBox1:
Свойства:
Left – 16;
Top – 100;
Width – 113;
Height – 21;
Style – csDropDownList;
ItemHeight – 13;
TabOrder – 0.
12 – компонентImage 1:
Свойства:
Height – 49;
Width – 49;
13 – компонентImage 2:
Свойства:
Height – 49;
Width – 49;
14 – компонент Image3:
Свойства:
Height – 321;
Width – 433;
15 – компонент BitBtn 1:
Свойства:
Glyph – (TBitmap);
Height – 121;
Width – 121.
События:
BitBtn1Click – событие одиночного щелчка по кнопке.
2.2 Спецификация программы
Исполняемый файл программы «Project1» имеет название Project1.exe.
Таблица 1.
Состав проекта.
Наименование Обозначение Примечание
Project1.dof
Файл параметров проекта
главной формы
Содержит текущие установки проекта, настройки компилятора и компоновщика, имена служебных каталогов, условные директивы
Продолжение таблицы 1
Project1.res Файл ресурсов главной формы Содержит пиктограммы, графические изображения
Unit1.pas Файл программных модулей главной формы Определяет функциональность форм
Unit1.dfm Файл программных модулей главной формы
Содержит графические характеристики модулей
Главного окна программы
Unit.dcu Объектный файл для Unit.pas Откомпилированная версия Unit.pas
2.3 Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, StdCtrls, Math, Buttons;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
Image1: TImage;
Image2: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
ComboBox1: TComboBox;
Label5: TLabel;
Label6: TLabel;
ComboBox2: TComboBox;
Label7: TLabel;
BitBtn1: TBitBtn;
N4: TMenuItem;
N5: TMenuItem;
Image3: TImage;
procedure N3Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure invisible_all(Sender: TObject);
procedure visible_all(Sender: TObject);
procedure Label6Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Ochki: longint;//переменная, отвечающая за очки игрока
implementation
{$R *.dfm}
procedure TForm1.N3Click(Sender: TObject);//кнопкавыход
begin
application.Terminate;//закрываемприложение
end;
procedure TForm1.N2Click(Sender: TObject);//новаяигра
var i:integer;
begin
image3.Visible:=false;
ochki:=100;//присваиваем переменной "ochki" количество начальных очков, по условию = 100
label2.Caption:='00';//задаём сумму выпавших кубиков = 0
label4.Caption:='100'; //задаём видимое количество очков
image1.Picture.LoadFromFile('p0.bmp');//задаём начальное изображение кубиков(пустое)
image2.Picture.LoadFromFile('p0.bmp');//задаём начальное изображение кубиков(пустое)
combobox1.Items.Clear;//очищаем список ставок
for i:=1 to 100 do
begin
combobox1.Items.Add(inttostr(i));//заполняемсписокставокот 1 до 100
end;
combobox1.ItemIndex:=0;//задаём начальное положение элемента списка
combobox2.Items.Clear;//очищаем список вариантов кубиков
for i:=2 to 12 do
begin
combobox2.Items.Add(inttostr(i));//заполняемсписокставокот 2 до 12
end;
combobox2.ItemIndex:=0;//задаём начальное положение элемента списка
visible_all(sender);//делаем видимыми все объекты на форме
bitbtn1.Enabled:=false;//ставим положение кнопки броска на выключено
end;
procedure tform1.invisible_all(Sender: TObject);//делаемневидимымивсеобъектынаформе
begin
label1.Visible:=false;
label2.Visible:=false;
label3.Visible:=false;
label4.Visible:=false;
label5.Visible:=false;
label6.Visible:=false;
label7.Visible:=false;
image1.Visible:=false;
image2.Visible:=false;
combobox1.Visible:=false;
combobox2.Visible:=false;
bitbtn1.Visible:=false;
end;
procedure tform1.visible_all(Sender: TObject);//делаемвидимымивсеобъектынаформе
begin
label1.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
label4.Visible:=true;
label5.Visible:=true;
label6.Visible:=true;
label7.Visible:=true;
image1.Visible:=true;
image2.Visible:=true;
combobox1.Visible:=true;
combobox2.Visible:=true;
bitbtn1.Visible:=true;
end;
procedure TForm1.FormCreate(Sender: TObject);//присозданииформы
begin
image3.Visible:=true;
image3.picture.loadfromfile('l4.bmp');
invisible_all(Sender);//делаем невидимыми все объекты на форме, при загрузке игры
end;
procedure TForm1.Label6Click(Sender: TObject);//нажатиенанадписьпоставить
begin
bitbtn1.Enabled:=true;//делаемактивнойкнопкуброска
label2.Caption:='00';//сумма броска кубиков сбрасывается на 0
image1.Picture.LoadFromFile('p0.bmp');//загружаем пустые картинки для кубика
image2.Picture.LoadFromFile('p0.bmp');//загружаем пустые картинки для кубика
end;
procedure TForm1.BitBtn1Click(Sender: TObject);//процедурананажатиекнопкиброска
var i,i1,i2:integer;
begin
randomize;//включаем генератор случайных чисел
i1:=randomrange(1,6);//переменной i1 присваиваем значение от 1 до шести случайным образом
i2:=randomrange(1,6);//переменной i2 присваиваем значение от 1 до шести случайным образом
image1.Picture.LoadFromFile('p'+inttostr(i1)+'.bmp');//в зависимости от выпавшего числа загружаемс картинку для 1-го кубика
image2.Picture.LoadFromFile('p'+inttostr(i2)+'.bmp');//в зависимости от выпавшего числа загружаемс картинку для 2-го кубика
label2.Caption:=inttostr(i1+i2);//выводим на экран сумму выпавших кубиков
if ( (i1+i2<7) and (strtoint(combobox2.Items.Strings[combobox2.ItemIndex])7) and (strtoint(combobox2.Items.Strings[combobox2.ItemIndex])>7) )
and ( i1+i2<>strtoint(combobox2.Items.Strings[combobox2.ItemIndex]) )
then
begin
ochki:=ochki+strtoint(combobox1.Items.Strings[combobox1.ItemIndex]);//прибавляемкочкамвыиграннуюставку
showmessage('Вы выиграли ставку!')//выводим сообщение о выйгрыше
end else
begin
if i1+i2=strtoint(combobox2.Items.Strings[combobox2.ItemIndex]) then//есливыбранноечислосовпадаетсвыпавшим
begin
ochki:=ochki+strtoint(combobox1.Items.Strings[combobox1.ItemIndex])*4;//прибавляемкочкамвыиграннуюставкув 4-хкратномразмере
showmessage('Вы выиграли 4-х кратную ставку!')//выводим сообщение о выйгрыше
end else
begin
ochki:=ochki-strtoint(combobox1.Items.Strings[combobox1.ItemIndex]);//условиепройгрыша
showmessage('Вы проиграли ставку!')//выводим сообщение о пройгрыше
end;
end;
if ochki<=0 then //условиеокончанияигры
begin
invisible_all(sender);//скрываем все объекты на форме
showmessage('Вы проиграли!');//выводим сообщение о конце игры
end else
begin
label4.Caption:=inttostr(ochki);//выводим на экран количество очков
combobox1.Items.Clear;//очищаем список возможных ставок
for i:=1 to ochki do
begin
combobox1.Items.Add(inttostr(i)); //заполняем список возможных ставок от 1 до количества очков
end;
combobox1.ItemIndex:=0;//задаём начальное положение элемента списка
end;
{ label2.Caption:='00'; //сброс значения кубиков и суммы кубиков
image1.Picture.LoadFromFile('p0.bmp');
image2.Picture.LoadFromFile('p0.bmp');}
bitbtn1.Enabled:=false;//ставим положение кнопки броска на выключено
end;
procedure TForm1.N5Click(Sender: TObject);
begin
showmessage('Автор курсовой работы Важенин Антон Александрович);// Справка
end;
end.
2.4 Описание программы
Общие сведения:
Программа «Form» написана на языке ObjectPascal[2] в визуальной оболочке программирования Delphi 7. Для полноценного функционирования программы необходимо наличие операционной системы Windows, либо компиляторы Delphi 7.
Функциональные назначения:
Программа была разработана для проведения досуга программиста.
Описание логической структуры:
Логическая структура программы построена следующим образом: Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход. Программа с помощью датчика случайных чисел дважды выбирает числа от 1 до 6 (“бросает кубик”, на гранях которого цифры от 1 до 6). Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку. Если сумма выпавших цифр больше 7 и играющий задумал число большее 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка. Ставка проиграна, если не имеет место ни одна из описанных ситуаций. В начальный момент у играющего 100 очков.
Используемые технические средства:
Данная программа может нормально функционировать на компьютерах от 486DX до PentiumIV . Размещения модуля программы на жёстком дискеоколо 1,5 Mb.
2.5 Тестирование программы
Для разработки программы «Form» использовалась среда визуального программирования “Delphi”. Delphi-это средства разработки программ, ориентированных на работу в Windows. В основе идеологии Delphi лежит технология визуального проектирования и методология объектно-ориентированного программирования. Для представлений программ в Delphi используется разработанный Borland язык ObjectPascal, в основе которого лежит TurboPascal.
Для проверки программы проводилось следующее испытание.
В соответствии с рисунком 3 видно, что программафункционирует нормально, если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку.
© 2014 - 2019 BigLib.info — это сокращение от Big Library (большая библиотека).
Целью создания этого сайта было сделать украинскую литературу доступной для всех, кто желает ее читать.
Использование любых материалов сайта без согласования с администрацией запрещено.
Обратная связь