Программа, моделирующая игру в «Кости»

       

 

 

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ВОЗДУШНОГО ТРАНСПОРТА

Троицкий авиационный технический колледж – филиал МГТУ ГА

 

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

 

 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе 

 

Тема: Программа, моделирующая игру в «Кости»

ПКС 230115.331.01.КР

 

 

 

Разработал:                                                                            курсант 331 группы

                                                                                                  Баранов М.Д.

 

Проверил:                                                                                 преподаватель

                                                                                                  отделения ПКС

                                                                                               Загфарова Э.Р.

                                                                                                    преподаватель

                                                                                                  отделения ПКС

                                                                                               Питиримова Ю.В.

 

 

 

 

 

 

 

 

г. Троицк 2013 г.

Задание

на выполнение курсового проекта.

  1. Выдано: Баранову Максиму
  2. Дано: Программа, моделирующая игру в «Кости»
  3. Объем выполнения:

3.1. Пояснительная записка……………………………..  54 листа;

3.2. Приложения  –Дневник ошибок, инструкция для пользователя листинг программы, структурограмма;

3.3. Техническая поддержка – электронная презентация;

 

  1. Рецензия на выполненную работу:________________________________

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

 

  1. Оценка:______________________________________________________
  2. Задание выдано:_______________________________________________

Подпись преподавателя:

 

 

 

 

 

 

 

      

 

Оглавление

1.Введение……………………………………………...................……………...4

2. Основная часть…………………………………...................……………......13

2.1. Спецификация……………………………………..........……....…...14

2.2. Заключение……………………………………….....……………....24

3. Литература.........................................................................……………………26

4. Приложения.......................................................................................................28

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Компьютерная игра (иногда используется неоднозначный термин видеоигра) — компьютерная программа, служащая для организации игрового процесса (геймплея), связи с партнёрами по игре, или сама выступающая в качестве партнёра.

Компьютерные игры часто создаются на основе фильмов и книг; есть и обратные случаи. С 2011 года компьютерные игры официально признаны в США отдельным видом искусства. Компьютерные игры оказали столь существенное влияние на общество, что в информационных технологиях отмечена устойчивая тенденция к геймификации для неигрового прикладного программного обеспечения.

Люди любят играть. Люди обожают, как «кэрролловская» Алиса, «представлять себя королями и королевами» и забывают, что завтра надо идти в школу или на работу. И компьютерные игры, пожалуй, ничего нового в эту ситуацию не привнесли. Какая разница, в сущности, во что именно играть?

Впрочем, несмотря на отсутствие качественных изменений, количественных накопилось – хоть отбавляй! За прошедшие четыре десятилетия индустрия компьютерных игр успела не просто родиться из ничего и завоевать популярность, но и добраться по добытым деньгам до заслуженной и куда более «раскрученной» индустрии кино.

А начиналось все очень и очень скромно.

«Первый крик младенца»

В далеком 1961 году в Массачусетсском технологическом (знаменитый MIT) на одном из мэйнфреймов впервые родилась компьютерная игра под названием SpaceWar. Это событие осталось незамеченным, поскольку компьютеры тех времен были чуть дороговаты для того, чтобы на них играть. Но это не мешало Настоящим Программистам, работавшим на них, делать игры для себя и играть в них.

Знаменитая SpaceWar любопытна с технологической точки зрения: в те времена и на том компьютере еще не было привычных нам растровых

графических дисплеев, только текстовые терминалы и, как вершина графических возможностей, векторные графические дисплеи, где электронный луч на каждом кадре не бегает по строкам, а прямо отрисовывает заданные программой контуры объектов.

Суть игры-прародительницы была проста: два небольших кораблика летали по экрану и стреляли друг в друга снарядами. Так что первый в мире жанр – это, безусловно, аркада.

Коммерсанты берутся за дело

Название «аркада», между прочим, происходит от архитектурной детали, эдакого крытого коридорчика, где традиционно размещались игральные автоматы, которым предстояло родиться через 10 лет после появления SpaceWar.

В 1971 году Нолан Башнелл (Nolan Bushnell) создал и начал продавать первую коммерческую аркадную игру: Computer Space. В ее основе – все та же SpaceWar, та же векторная графика, тот же сюжет, только вместо суперкомпьютера – вполне разумный по размерам и почти доступный по цене железный ящик.

Увы, первопроходцем быть непросто, и первая попытка, как это часто бывает, провалилась. Похоже, рынок еще не созрел для такой сложной игры.

Но Нолан не сдавался, он переименовал компанию в Atari и в 1972 году выпустил эпохальную игру, начавшую собственно эру коммерческих игр. Знаменитейший Pong, простенькая аркадка, где две тарелочки, управляемые двумя людьми или человеком и компьютером, отбивают мячик, стараясь удержать его на игровом поле, наделала столько шума, что до сих пор каждый уважающий себя игрок при упоминании ее названия благоговейно вздыхает...

Дальше – менее эпохальные, но достаточно известные Odyssey, выпущенный Magnavox, и Tank от Kee. В середине 70-х группа разработчиков во главе с Вильямом Кроутером (William Crowther) создала игру Adventure, первую текстовую «бродилку», положив начало жанру adventure game. Adventure работала на мэйнфреймах фирмы DEC (серии KA-10).

В 1976 году Башнелл продал Atari фирме Warner Communications за 26 млн долл., и та ориентировала его на домашний рынок, нечто вроде современных приставок, но с единственной игрой.

А тут и другие подоспели: Стив Джобс (Steve Jobs) и Стив Возняк (Steve Wozniak) – да, да, те самые – придумали Breakout, больше известный в наши дни по игре фирмы Taito как Arcanoid.

Еще через год, в 1977-м, Atari выпустила 2600 VCS, первую игровую приставку с несколькими играми. Ее технические характеристики сегодня могут вызвать улыбку, но по тем временам два килобайта ПЗУ и 128 байт ОЗУ было вполне достаточно, чтобы обеспечить немалый коммерческий успех.

А дальше все понеслось с невероятной скоростью, как лавина по склону горы. В 1977 году фирма Apple начала продажи Apple II, в 1978-м знаменитейшая игра Space Invaders родилась все в той же японской фирме Taito, а в 1979-м разработчики из Atari основали фирму Activision. Тогда же появилась Atari 800, где впервые был задействован 8-битный процессор.

Царство приставок

Восьмидесятые, а точнее, самое их начало, быстро показали, что время компьютерных игр пришло всерьез и надолго. Phillips, подключившись к всеобщей гонке, создает Odyssey2, Mattel выпускает Intellivision, хотя и с лучшей графикой, но весьма жутким устройством управления. Namco изобретает игру, дожившую до наших дней практически без изменений: великий Pac-Man, по сей день регулярно реализуемый на разных платформах и в разных видах.

Индустрия в эти годы благополучно взяла крупный рубеж: больше 1 млрд долл. (около 2,5 млрд долл. сегодня). Продано было около 300 тыс. приставок и игральных автоматов.

Atari не стояла на месте и изобрела Asteroids, да и в остальных жанрах застоя не намечалось: в приключенческих играх родился классический текстовый квест от Infocom под названием Zork (впоследствии переросший в серию), да и первая игра из серии Ultima вышла все в том же 1980-м...

А на следующий год бум достиг невообразимого размаха. Продаж уже больше чем на 6 млрд долл., игры так и сыпались: Donkey Kong от Nintendo, Galaxian, Centipede, Tempest, сестричка Pac-Man’а по имени Ms.Pac-Man.

Гадкий утенок

В том же 1981-м произошло не слишком заметное поначалу, зато впоследствии полностью перевернувшее мир, событие: IBM впервые представила публике IBM PC.

И понеслось... Моментально стали образовываться фирмы, ориентированные исключительно на домашние компьютеры: Sierra On-Line, Broderbund, BudgeCo, Electronic Arts.

А в 1983 году наступил суровейший кризис, продлившийся несколько лет. Фирма Mattel потеряла на Intellivision 225 млн долл., столько, сколько ей удалось заработать за все предыдущие четыре года. Atari вообще рухнула. К 1984 году общий объем игровой индустрии составлял всего около 800 млн долл.

Правда, несмотря на грустные условия, рождались и шедевры, ставшие чуть позднее основой для нового подъема. Например, Commodore 64, несложный домашний компьютер, проданный в количестве около 20 млн штук.

А все в том же, богатом на сенсации, 1984 году Apple впервые представила народу Macintosh, и за первые шесть месяцев продала 100 тыс. штук. Sierra On-Line выпустила первую игру из серии King’s Quest, сохранившей популярность и до сих пор.

1986 год  многие вспоминают с теплым, хотя  и грустным, чувством: именно тогда  появилась «подружка» (Amiga на испанском языке), выпущенная фирмой Commodore. Замечательная машинка, разработанная инженером из Atari Джеем Майнером (Jay Miner), была удивительно мощной, напичканной новаторскими идеями, но неудачный маркетинг способен похоронить любой шедевр, и Amiga так и не осилила дорогу в широкие массы. Правда, в последнее время ходят слухи об оживлении этой марки, но получится ли что-нибудь – пока неясно.

Время шло, компьютеры становились все мощнее, игры все красивее, где-то года с 1987 на IBM PC стали появляться игры, похожие на сегодняшние, как раз тогда начал широко применяться видеоадаптер VGA, а потом и SVGA, и показ 256 цветов вместо 16 сильно повысил качество графики. Хорошо? Наверное, да, хотя, откровенно говоря, после выхода Тетриса в 1988 году погоня за интересностью игр явно ослабела, уступив погоне за зрелищностью. Надо еще, пожалуй, упомянуть выпуск в 1989 году карманной компьютерной игры Gameboy. И рассказ о древних годах, заложивших фундамент того, что мы сегодня зовем индустрией компьютерных игр, можно считать законченным, тем более, что с           начала 90-х почти одновременно возник бум и в играх для PC и в приставках. К примеру, одна только фирма Nintendo в 1992 году продала товара на 7 млрд долл. (из них 4,7 млрд только в США) и получила большую прибыль, чем все американские кино- и телестудии вместе взятые.

Классификация компьютерных игр

Компьютерные игры могут быть классифицированы по нескольким признакам:

• Жанр: игра может принадлежать как к одному, так и к нескольким жанрам, а в уникальных случаях — открывать новый или быть вне всяких жанров;

• Количество игроков и способ их взаимодействия: игра может быть однопользовательской — рассчитанной на игру одного человека, или многопользовательской — рассчитанной на одновременную игру нескольких человек; а также вестись на одном компьютере, через интернет, электронную почту, или массово;

• Визуальное представление: игра может как использовать графические средства оформления, так и напротив, быть текстовой. Игра также может быть двухмерной или трехмерной. Есть и звуковые игры — в них вместо визуального представления используются звуки.

• Платформа: игра может принадлежать как к одной платформе, так и быть мультиплатформенной.

Классификация по жанрам

Жанр определяется целью игры. Выделяют следующие жанры:

• Приключенческая игра (Adventure) — игра, обладающая полноценным литературным сюжетом, и игрок в процессе игры сам раскрывает все перипетии этого сюжета.

  • Боевик (Action) — игра, состоящая в основном из боевых сцен, драк и перестрелок. Боевики подразделяются на:
    • «шутер» (от англ. shoot — cтрелять)
    • «файтинг» (от англ. fight — драться)
    • «хоррор» (от англ. horror — ужас)
    • «стелс» (от англ. stealth — скрытный)

• Ролевая игра (RPG — англ. Role Playing Game) — игра, отличительной особенностью которой является наличие у персонажей определённых навыков и характеристик, которые можно обрести, а впоследствии развивать, выполняя какие-либо действия. К этому жанру относятся и многопользовательские ролевые игры (ММОРПГ), которые, в отличие от однопользовательских, не имеют ни конечной цели, ни законченного сюжета.

• Стратегическая игра (Strategy) — игра, представляющая собой управление масштабными процессами, как например, строительство городов, ведение бизнеса, командование армией и т. д. Игровой процесс может идти как в реальном времени (RTS — real time strategy), так и в пошаговом режиме.

• Компьютерный симулятор (Simulator) — игра, полностью имитирующая какую-либо область реальной жизни, например, имитация управления гоночным автомобилем или самолётом.

• Головоломка (Puzzle) — игра, полностью или более чем наполовину состоящая из решения различных логических задач и головоломок.

• Образовательная игра — игра, включающая в себя элементы обучающих программ, которые подаются через сам игровой процесс и, благодаря повышению интереса к ним в связи с необычным антуражем, впоследствии хорошо запоминаются.

• Забавы — игры, в основном рассчитанные на детей, где психологическое впечатление от происходящего на экране гораздо важнее самого процесса игры — например, вид лопающихся пузырьков.

Жанровая классификация компьютерных игр предполагает введение нескольких дополнительных оснований:

  • динамика — игровой процесс может происходить в условиях «реального времени» или пошагово;
  • перспектива — игра может вестись как от первого, так и от третьего лица.

Классификация по количеству игроков и способу их взаимодействия

• Однопользовательские

• Многопользовательские

• Многопользовательские на одном компьютере

• Многопользовательские через электронную почту

• Массовые

• Игры для социальных сетей

Классификация по тематике

• Фэнтези

• Исторические

• В духе современности

• Космические

• Постапокалиптические

• Мифологические

• Киберпанк

• Стимпанк

Классификация по платформам

• Персональные компьютеры

• Игровые консоли/приставки

• Мобильные телефоны и КПК

По количеству платформ

• Мультиплатформенные/Многоплатформенные игры (вышедшие на двух и более платформах).

• Одноплатформенные игры (вышедшие только на одной платформе — платформенные эксклюзивы).

Разработка игр — это процесс создания компьютерных игр. В настоящее время разработка и производство компьютерных игр превратилось в настоящую индустрию с многомиллиардными оборотами.

Также возможна разработка самодельных компьютерных игр, для этого могут быть использованы так называемые конструкторы игр.

Компьютерные игры являются одной из драматических форм, а их интерактивность — это вопрос степени участия, но не формы. Поэтому, как и другие формы, компьютерная игра имеет пять ключевых элементов: стиль, фабула, герой, декорации и тема. Все хорошие игры должны обладать некоторым развлекательным потенциалом, и в большинстве их он основан на классических законах драмы.

В 2011 году компьютерные игры были официально признаны правительством США и американским Национальным фондом отдельным видом искусства, наряду с театром, кино и другими. После этого разработчики получили право, наравне с представителями кинематографа, музыки, живописи и литературы, рассчитывать на государственные гранты в размере от 10 до 200 тыс. долларов. Данная финансовая поддержка позволит независимым специалистам и компаниям значительно активней реализовать концептуальные проекты.

 

 

 

 

 

 

 

 

 

 

 

 

 

ОСНОВНАЯ ЧАСТЬ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Спецификация

Задание на разработку программы:

Разработать программу, моделирующую игру в кости. Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в  этот ход. Программа, с помощью датчика случайных чисел дважды выбирает числа от 1 до 6 («бросает кубик», на гранях которого цифры от 1 до 6). Если сумма выпавших  цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставка. Если сумма выпавших цифр больше 7 и играющий задумал число большее 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в 4 раза больше очков, чем сделанная ставка. Ставка проиграна, если не имеет место ни одна из описанных ситуаций. В начальный момент у играющего 100 очков. В программе должно присутствовать графическое изображение поверхности кубика при каждом ходе игрока.

Название задачи:

«Игра в кости»

Название программы – dice.exe

Система программирования – Borland Delphi 7.

Минимальные системные требования: OC Windows XP or Highest.

Процессор: 800 МГц+.

ОЗУ: 128 Мб+.

Место на HDD: 2 Мб+.

Математическая модель:

Задуманное игроком число и размер ставки считываются из полей ввода и помещаются соответственно в переменные n типа byte и s типа integer.  Количество очков игрока  изначально равно 100 и хранится в определенной переменной (o=100;). «Бросок кубика» осуществляется путем присваивания случайных целых чисел от 1 до 6 определенным переменным (k1:=1+random(6); k2:=1+random(6);). После чего происходит сравнение суммы выпавших очков (k1+k2) c числом 7, если  выполняется ряд условий («(k1+k2>7) and (n>7)», k1+k2<7) and (n<7)»), то игрок выигрывает ставку (o:=o+s;). Если выполняется условие («k1+k2=n»), то игрок получает ставку в 4-хкратном размере (o:=o+s*4;). Если сумма не удовлетворяет ни одному из условий, то считается, что игрок проиграл ставку (o:=o-s;). Количество бросков записывается в переменную b типа byte. После совершения «удачного броска», увеличивается счетчик побед – переменная w типа integer, а также вычисляется текущий процент побед (pr_w:= (w*100)/b). При «сохранении результата», ключевые данные (o,b,pr_w) переносятся на form2, где происходит формирование строки для записи в текстовый файл (str:=datetostr(date)+#9+timetostr(time)+#9+form2.Edit1.text+#9+inttostr(o)+ #9+#9+inttostr(b)+#9+floattostrf(pr_w,fffixed,4,1)+'%';)

Входные и выходные данные

Входные данные:

  1. Предполагаемое число очков, которые выпадут на костях (n типа byte).
  2. Размер ставки (s типа integer).

Требования к входным данным:

  1. Предполагаемое число очков должно быть в диапазоне от 2 до 12.
  2. Максимальный размер ставки ограничен текущим количеством очков либо 999.

Выходные данные:

Результатом работы программы является вывод информации о сохраненной игре в текстовый файл «Результаты.txt».

 

 

 

Разбиение программного комплекса на программные модули.

      1. DiceU1.pas

Содержит в себе главную форму программы (form1), которая

позволяет выполнять основные возможности программы, контролировать запуск остальных форм.

      1. DiceU2.pas

Содержит в себе второстепенную форму (form2), которая предназначена для осуществления записи текущих результатов игры в текстовый файл.

      1. DiceU3.pas

Содержит в себе второстепенную форму (form3), которая предназначена для подтверждения выхода из программы, если игра не была сохранена, то есть возможность перейти на form2 для сохранения игры.

      1. DiceU4.pas

Содержит в себе второстепенную форму (form4), которая является справкой о программе, содержит описания основных аспектов игры, информацию об авторе.

      1. Splash_dice.pas

Cодержит в себе второстепенную форму (fmSplash), являющуюся «сплэш-формой», на которой нельзя совершить каких-либо действий, она лишь появляется на несколько секунд перед созданием главной формы (form1) и служит для отображения информации о программе.

 

 

Пример работы программы

Для запуска программы необходимо запустить Dice.exe (Рис.1):

Рис. 1. Изображение файла

Перед запуском главного окна, на 3 секунды покажется заставка, где можно увидеть название программы, а также узнать, что для получения справки нужно нажать клавишу «F1» (Рис. 2):

Рис. 2. Заставка

На открывшейся главной форме (Рис. 3), расположен основной функционал программы, нажатие на клавишу «F1» приведет к вызову формы помощи (Рис. 4), где изначально показана вкладка «Помощь». На вкладке «Об авторе» приведены данные об авторе программы (Рис. 5). Для того чтобы вернуться на главную форму нужно нажать «Х»:

Рис. 3. Главная форма

Рис. 4. Раздел справки «Помощь»

Рис. 5. Раздел справки «Об авторе»

Для начала работы необходимо в поле ввода «Число» ввести предполагаемое число выпавших на костях очков, в поле ввода «Ставка» ввести размер ставки на это число. Параметры должны удовлетворять указанным требованиям (Число в диапазоне от 2 до 12, ставка не выше текущего количества очков), в противном случае, при нажатии кнопки «Бросок!», программа не продолжит работу и сообщит о причине                   ошибки (Рис.6):

Рис. 6. Неверный ввод

Другой вариант ошибки ввода (Рис. 7):

Рис. 7. Неверный ввод

При верно введенных параметрах следует нажать кнопку «Бросок!», в правой части экрана находится графическое изображение поверхности костей (Рис.8):

Рис. 8. Графическое изображение игральных костей

В зависимости от выпавших на костях очков, игроку зачитывается победа, либо поражение, оповещают об этом соответствующие всплывающие сообщения (Рис.9 и Рис. 10):

Рис. 9. Уведомление о поражении

Рис. 10. Уведомление о победе

Сохранение игры осуществляется путем нажатия на кнопку «Сохранить результат», при этом откроется форма, содержащая поле для ввода имени (Рис.11):

Рис.11. Форма сохранения (вид 1)

Кнопка «Сохранить» активируется только при непустом поле ввода (Рис.12):

Рис. 12. Форма сохранения (вид 1)

Нажатие на кнопку сохранить приведет к записи текущего результата в текстовый файл «Результаты.txt», при этом файл будет открыт (Рис. 13):

Рис. 13. Файл результатов

Нажатие на кнопку «Просмотр результатов» позволит открыть файл «Результаты.txt» для просмотра, аналогичное открытие файла изображено на рис. 13. При сведении счетчика очков на 0 форма сохранения откроется с другими параметрами (Рис.14), после нажатия на кнопку «Сохранить» откроется файл «Результаты.txt», работа программы будет завершена:

Рис. 14. Форма сохранения (вид 2)

Выход из программы осуществляется нажатием на кнопку «Выход», при этом откроется окно, которое имеет 2 варианта вывода:

  • В случае если игра не сохранена форма примет следующий вид (Рис.15), где нажатие на кнопку «Да» приведет к завершению работы с программой, нажатие на кнопку «Нет» осуществит возврат на главную форму, нажатие на кнопку «Сохранить» позволит открыть форму сохранения;

  • В случае если игра сохранена форма примет другой вид (Рис. 16), где нажатие на кнопку «Да» приведет к завершению работы с программой, нажатие на кнопку «Нет» осуществит возврат на главную форму;

Рис. 15. Форма выхода (вид 1)

Рис. 16. Форма выхода (вид 2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

Программа, моделирующая игру в «Кости»