Курсовая работа: Разработка программы, моделирующую игру Кости
Название: Разработка программы, моделирующую игру Кости Раздел: Рефераты по информатике Тип: курсовая работа | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Основные данные о работе
Содержание1 Разработка эскизного и технического проектов программы (ГОСТ 19.404-79)5 2 Разработка рабочего проекта. 8 Список использованных источников. 26 ВведениеВ связи с развитием информационно-коммуникационных технологий в последнее время резко возрос интерес к программированию. В данное время среди пользователей персональных компьютеров наиболее популярно семейство операционных систем 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. Состав проекта.
Продолжение таблицы 1
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) )//проверка на соответствие основному условию 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] В Delphi реализована поддержка новых передовых технологий, имеющих отношение к Интернету и кросс-платформой разработке приложений для Windows и Linux. Сергей Бобровский Delphi 6 , 2002 Питер C.19 [2] Язык Object Pascal - основной инструмент Delphi. Фаронов В.В. Delphi 6.0. –М.: Издательство «Нолидж», 2001 (С.43) |