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 – Вариант выпадения костей.
Условия выполнения программы:
Минимальные требования: компьютер 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)