Смекни!
smekni.com

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

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) )//проверка на соответствие основному условию

or ( (i1+i2>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, он выигрывает сделанную ставку.

Рисунок 3 – Вариант выпадения костей.

3 Внедрение

Условия выполнения программы:

Минимальные требования: компьютер Pentium 166, 128 Mb оперативной памяти, 800 Кбайт свободного пространства на жестком диске, операционная система Windows 9x/NT/Me/2000/Xp, Windows совместимая мышь. Наличие интегрированной среды разработки приложений BorlandDelphi необязательно.

Выполнение программы:

Для выполнения программы, необходимо зайти в каталог, в котором расположена программа и, запустить на выполнение файл Project1.exe (Приложение В). Завершить работу с программой можно, нажав кнопку «Выход» основной формы.

Сообщения оператору:

1. Предупреждение о проигрыше ставки;

2. Предупреждение о выигрыше ставки;

3. Автор курсовой работы Важенин Антон Александрович;

Заключение

Игры всегда были классом программ, мгновенно реагирующим на все новшества рынка. Так было и с Internet - массовая истерия по поводу Сети еще только набирала силу, а уже открывались первые игровые сервера для желающих. Возможности Internet по сравнению с классической локальной сетью неоспоримо выше: по первой обычно играют 3-5 человек, максимум 8-10. К тому же этим людям надо всем собраться вместе, подгадать время... В Сети же оппонентов искать не нужно - они всегда есть, и в избытке, кроме того, среднее количество одновременно играющих колеблется около 50-100 человек (Diablo, сервера battle.net). Если учесть, что интересность multiplayer-режима прямо пропорциональна количеству противников, то преимущество Internet становится очевидным. Кроме того, вступают в дело такие факторы, как неизвестные противники, что всегда разжигает любопытство, плюс желание "утереть буржуям нос" и т.п.

Перспективы игр в Интернет настолько высоко оцениваются на Западе, что уже выпущен ряд продуктов, ориентированных только на Сеть. То есть, в соло или классическом сетевом варианте они просто не поддерживаются в принципе (Iron Wolves, Meridian 87, Ultima Online). К сожалению, в Казахстане вряд ли можно рассчитывать на продажу on-line проекта, хотя бы из-за, мягко говоря, недостаточно широкого распространения сетевых услуг и отсутствия традиции платить настоящую цену за игровой софт вообще. Единственный вариант - продать разработку на Запад, благо в Москве уже действуют фирмы, занимающиеся скупкой проектов на стадии сценариев или даже просто сырых идей. Непатриотично, хотя и вполне реально.

В последнее время сложилась хорошая традиция по мере приближения проекта к завершению распространять его демо-версию и испрашивать у игровой общественности всяческих советов на тему его улучшения. Для этого потребуется наличие собственной странички на WEB-сервере, e-mail адреса, а аппаратно - модема со скоростью передачи данных не менее 14400 бод. Также немаловажно создавать ажиотаж вокруг игры еще задолго до ее выхода, периодически запуская многообещающие обзоры в Сеть и специальную литературу для игроков. Не исключено, что многие купят вышедший релиз просто по инерции, под впечатлением от публикаций.

Глоссарий

№ п/п Понятие Определение
1 TDXImageList Позволяет хранить серии DIB, Jpg, bmp-файлов, что очень удобно для программ, содержащих спрайты. Позволяет загружать DIB`ы с диска во время выполнения программы.
2 TDXPlay Компонент позволяющий обмениваться информацией на компьютерах.
3 char тип данных характеризующий символ
4 ShortString строка, количество символов в которой составляет 255
5 AnsiString строка, количество символов в которой составляет ~231
6 WideString строка, количество символов в которой составляет ~231
7 Компонент Функциональный элемент, имеющий определённые свойства и размещаемый программистом в окне формы.
8 Проект Совокупность файлов, обеспечивающих разработку приложения Delphi
9 Свойство Специальный механизм классов регулирующий доступ к полям
10 Событие Свойство процедурного типа предназначено для создания пользовательской реакции на то или иное входное воздействие

Список использованных источников

1 Архангельский, А.Я. 100 компонентов общего назначения библиотеки Delphi5 [электронный ресурс], 2005.
2 Архангельский, А.Я. Программирование в Delphi 7 – Москва, Издательство «БИНОМ»., 2004.
3 Бобровский С. Delphi 7 учебный курс. СПб.: Питер, 2004. – 736 с.
4 Бобровский, Сергей. Delphi 6: библиотека программиста. СПб.: Издательство «Питер», 2005
5 Дарахвелидзе, П., Марков Е. Программирование в Delphi 4. СПб.: БХВ. СПб.,2005.
6 Культин Н. Основы программирования в Delphi 7. СПб.: БХВ-СПб., 2003 – 608 с.
7 Немнюгин, С.А. TurboPascal – СПб.: Питер, 2004
8 Сван, Том. Delphi4. Библия разработчика. – Киев - М., СПб.: Издательство «Диалектика», 2006.
9 Ульман, Дж., Уидом, Дж. Введение в системы баз данных. – М.: Лори, 2004 – 458с.
10 Фаронов, В.В. Delphi 6.0. – М.: Издательство «Нолидж», 2001.
11 Федоров, А.Г. Delphi 3.0. для всех – М.: Компьютер Пресс, 2007.
12 Хомоненко, А. Базы данных. 2-е изд. – СПб., 2004. – 264 с.

Приложения

А
Б
В

[1] В Delphi реализована поддержка новых передовых технологий, имеющих отношение к Интернету и кросс-платформой разработке приложений для Windows и Linux. Сергей Бобровский Delphi 6 , 2002 Питер C.19

[2] Язык Object Pascal - основной инструмент Delphi. Фаронов В.В. Delphi 6.0. –М.: Издательство «Нолидж», 2001 (С.43)