Разработка приложения для Windows, представляющего собой компьютерную игру «Кости»

Автор: Пользователь скрыл имя, 13 Декабря 2011 в 15:37, курсовая работа

Краткое описание

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

Оглавление

Введение 4
Глава 1. Разработка эскизного и технического проектов программы 5
1.1. Назначение и область применения 5
1.2. Технические характеристики 5
1.2.1. Постановка задачи 5
1.2.2. Описание алгоритма 7
1.2.3. Организация входных и выходных данных 9
1.2.4. Выбор состава технических и программных средств 10
Глава 2. Разработка рабочего проекта 11
2.1. Разработка программы 11
2.2. Написание программы 14
2.3. Спецификация программы 17
2.4. Текст программы 18
2.5. Тестирование программы 24
Глава 3. Внедрение 25
3.1. Условия выполнения программы 25
3.2. Выполнение программы 25
3.3. Сообщение оператору 25
Заключение 27
Список литературы 28
Приложение 1
Приложение 2

Файлы: 1 файл

Курсач по костям.doc

— 255.50 Кб (Скачать)

Оглавление 

Приложение 1

Приложение 2

 

Введение

 

      Задание на курсовую работу по дисциплине

      «Алгоритмические  языки и программирование»

      Студент группы  

      Направление: «Информатика», № контракта 

      Тема: Разработка приложения для Windows, представляющего собой компьютерную игру «Кости».

      Условие задачи:

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

     Задание выдано:

 

  1.  Разработка эскизного и технического проектов программы

     Стандарт ГОСТ 19.404-791 устанавливает основные требования к содержанию и оформлению программного документа «Пояснительная записка», входящего в состав документов на стадиях разработки эскизного и технического проектов программы.

    1. Назначение  и область применения
 

     Необходимо  разработать учебную программу. Область применения: досуг программиста. Поскольку ставится задача разработать  приложение для Windows, то использоваться программа может под управлением Windows 9x.

    1. Технические характеристики
      1. Постановка  задачи
 

     В условии задачи игры «Кости» указывается  на необходимость использования датчика случайных чисел, с помощью которого программа дважды выбирает число от 1 до 6. Два случайно выбранных числа представляют собой выпавшие значения на гранях «брошенных» кубиках. Для хранения этих значений организуем массив, состоящий из двух элементов целого типа, который и будет представлять собой кубики. Также необходимо использовать переменную, которая содержит текущий кредит игрока (количество набранных очков). Какое количество очков поставил на ход игрок, а также, на какое число была сделана ставка, будет храниться в полях на форме игры. После выпадения случайных чисел значения элементов массива складываются и сравниваются с числом, на которое игрок сделал ставка. Далее произойдет увеличение или уменьшение кредита игрока, зависящее от условия игры.

     В условии задачи игры также указывается  на необходимость графического вывода поверхностей кубиков. Это реализуется таким образом. Все возможные поверхности кубика будут храниться в одной картинке последовательно (все грани кубика располагаются в ряд). Затем после заполнения массива, представляющего собой выпавшие значения кубиков, будут копироваться две грани кубиков из общей картинки. Координаты для копирования граней кубиков зависят от значений элементов массива. Формула для подсчета начала координат копирования грани кубика выглядит таким образом:

     (ZnachKub – 1) * WidthKub , где

     ZnachKub – случайно выпавшее значение первого кубика от 1 до 6;

     WidthKub – ширина грани кубика.

     Таким образом если ширина грани кубика будет равна 60 точек и картинка хранящая грани кубика тогда будет состоять из 6 возможных граней по 60 точек каждая – 360 точек (в программе используется такое значение), а случайно выбранное значение кубика будет равно 2, то скопируется область картинки с координатами: (60, 0, 120, 60) - (x, y, x + ширина, высота). Высота и ширина грани равна 60. Начало области копирования вычислили по представленной формуле: (2-1) * 60 = 60, т. е. вторая грань кубика на которой значение 2. Те же операции повторим и для второго кубика.

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

      1. Описание  алгоритма
 

     После того как сделана ставка, выбрано число, на которое игрок сделал ставку и нажата кнопка «Ход», включается таймер. Когда программа обрабатывает событие таймера, увеличивается счетчик, который фиксирует количество заходов программы в процедуру обработки этого события, при этом каждый раз выбираются два случайных числа, которые определяют картинки граней кубиков и осуществляется вывод этих граней. Если счетчик доходит до установленного значения максимума, то происходит окончательный выбор двух случайных чисел и определяется выигрыш игрока. Обобщенная блок-схема алгоритма хода представлена на рисунке 1.

       
 
 
 
 
 
 
 
 
 
 
 
 
 

Рис. 1 Блок-схема алгоритма  хода игрока

     При создании новых игроков, удалении их из общего списка, а также при  выборе игрока и сохранении информации о текущем игроке происходит перезапись файла, хранящего эту информацию, следующим образом. Создается временный файл, в который будет записана старая и новая информация, затем созданный файл копируется в старый, тем самым как бы обновляя его, и временный файл удаляется. Такой алгоритм реализован в каждой процедуре изменяющей информацию об игроках. Блок-схема алгоритма представлена на рисунке 2.

     

Рис. 2 Блок-схема алгоритма  сохранения информации об игроках

      1. Организация входных и выходных данных
 

     Входными данными являются: информация о том, на какое число была сделана ставка, а также сумма, поставленная на это число. Входными данными также является информация о том, какой игрок выбран из списка игроков. Это влияет на установку текущего кредита и на значения, отображающие последнюю сделанную ставку в прошлой игре. Глобальные переменные, используемые в программе и описанные в Unit1, приведены в таблице 1. Глобальные переменные, используемые в программе и описанные в Unit2, приведены в таблице 2.

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

Таблица 1

Переменная Тип Описание
Kub Массив целого типа, состоящий из двух элементов Хранит случайно выпавшие числа для вывода граней кубиков
Kredit Длинное целое Кредит игрока (набранное количество очков)
Rotation Целое Количество  заходов в процедуру таймера
 

Таблица 2

Переменная Тип Описание
FO Текстовый файл Файл для  чтения
FS Текстовый файл Файл для  записи
S Строка Хранит считываемые строки
NameGamer Строка Имя текущего игрока
KolGamer Целое Количество  игроков
i, j Целое         Используются  для создания циклов

 

      1. Выбор состава  технических и  программных средств
 

     Делается  вывод о необходимости использования  интегральной среды разработки программ Delphi. Среда Delphi позволяет достаточно быстро разрабатывать приложения для Windows. Технические характеристики компьютера: Pentium 100 и выше; объём оперативной памяти 8 Мб; жёсткий диск объёмом не менее 500 Мб. Именно эти параметры создают условия для полноценной работы IDE Delphi2  и программ, созданных в этой среде. Дополнительных средств (принтер, сканер и т. д.) не требуется.

 

  • Разработка  рабочего проекта
    1. Разработка  программы
 

     Для разработки приложения «Кости» используются средства визуального программирования Delphi. Проект программы содержит два окна: FormGame – рисунок 3, FormNew – рисунок 4. 

Рис. 3 Окно игры –  FormGame 

     Компонент FormGame – окно игры

     Свойства:

         Caption = 'Игра "Кости"'

         Color = clWhite

     События:

         OnActivate = FormActivate – вызов окна выбора игрока

         OnClose = FormClose – вызов процедуры записи игрока

     1 - компонент Timer: Ttimer

     Свойства:

         Enabled = False

         Interval = 200

     События:

     OnTimer = TimerTimer – выбор двух случайных чисел и подсчет выигрыша (ход игрока)

     2- компонент ImageTable: Timage

     Свойства:

         Align = alClient

     Событий нет.

     3- компонент Panel1: Tpanel

     Свойства:

         BorderStyle = bsSingle 

         Color = clWhite

     Событий нет.

     4: компонент Label1: Tlabel

         Свойства:

         Caption = 'Кредит:'

         Событий нет.

        компонент Label2: Tlabel

        Свойства:

         Caption = 'Ставка:'

        Событий нет.

       компонент Label3: Tlabel

        Свойства:

         Caption = 'Число:'

        Событий нет.

     5 - компонент ImageKubik: Timage

     Свойства:

         AutoSize = True

         Visible = False

     Событий нет.

     6 - компонент StatusBar: TstatusBar

     Свойства:

         Color = clWhite

         Panels = <

           item

                Alignment = taCenter

                Width = 125

             item

                Alignment = taCenter

                Text = 'Выпало:'

            item

                Alignment = taCenter

Информация о работе Разработка приложения для Windows, представляющего собой компьютерную игру «Кости»