Разработка игры морской бой

Автор работы: Пользователь скрыл имя, 07 Ноября 2011 в 21:04, курсовая работа

Описание

В нашей курсовой работе представлены игры «Морской бой» и «Автоматический видео-покер». Данные программы предназначены для домашнего использования как время проведения досуга. Программы распространяються по принципу «freeware».

Содержание

Введение ................................................................................................................. 3

1. Общий раздел ………………………………………………............................. 4

1.1. Цель разработки …………….………………………………….................... 4

1.2. Характеристика используемых при работе аппаратно-программных средств .................................................................................................................... 4

1.3. Обоснование выбора среды программирования ......................................... 9

2. Специальный раздел ........................................................................................ 11

2.1. Постановка задачи ........................................................................................ 11

2.2. Анализ входной и выходной информации …............................................. 12

3. Технологический раздел ................................................................................. 13

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

3.1.1. Описание алгоритма магазина «UniversalShop» ................................... 13

3.2. Описание программы «UniversalShop»..................................................... 14

3.3. Описание процесса отладки программы .................................................... 25

3.4. Анализ результатов решения задачи……………………………………..

3.5. Инструкция пользователя ............................................................................ 26

Заключение

Приложение 1 Исходный код программы

Работа состоит из  1 файл

Морской бой.doc

— 325.00 Кб (Скачать документ)

      - мемо-поле, в котором отражается все ходы, сделанные в игре 

      - главное меню программы

      - список для выбора сложности  бота

      - управляющие кнопки

      На  главной форме пользователь может  играть.

      На  форме «Сохранение схемы» пользователь может сохранить схему расстановки  кораблей.

      На форме «Загрузка/Удаление схемы» пользователь может загрузить или удалить схему.

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

      На  форме «О программе» можно узнать о разработчике программы.

     3.2.Описание программы

            Программный продукт Магазин «Морской бой» написан в среде визуального объектно-ориентированного программирования Delphi 6.

      Данная  программа состоит из:

    • MainUnit – главный модуль программы, отвечает за процесс игры;
    • ConfUnit – модуль, отвечающий за установку и сохранение настроек, заданных пользователем;
    • LoadDelShemeUnit – модуль, отвечающий за загрузку и удаление схем игры;
    • SaveShemeUnit – модуль, который отвечает за сохранение схемы игры;
    • HTMLUnit – модуль, который за сохранение результатов игры в формате HTML;
    • CleanerUnit – модуль, отвечающий за очистку ненужных данных в файлах схем;
    • AboutUnit – модуль окна «О программе»

              Головная программа начинается  с ключевого слова Program, после которого пишется имя программы. Оно совпадает с именем файла, в котором сохраняется проект. Это же имя присваивается исполняемому файлу приложения. По умолчанию это имя Project1. После заголовка в тексте программы располагается оператор uses. Этим оператором перечисляются модули, загружаемые программой. Первый модуль Forms – системный, а следующие – модули разработанных программ. Следующая строка текста – {$R *.RES} представляет собой директиву компилятора. Затем, после ключевого слова begin и до последнего завершающего программу end с точкой (end.), записано тело программы.

      Рассмотрим  теперь, как выглядят тексты модулей.

      Модуль  начинается с ключевого слова Unit, после которого пишется имя модуля. Оно совпадает с имеем файла, в котором сохраняется модуль. По умолчанию для первого модуля имя равно Unit1, для второго Unit2 и т.д.

      Текст модуля состоит из двух основных разделов: interface – открытый интерфейс модуля и implementation – реализация модуля. Все, что помещается непосредственно в раздел interface (типы, переменные, константы, функции, процедуры), может быть использовано другими модулями программы. Все, что помещается в раздел implementation – внутреннее тело модуля. Внешние модули не могут видеть типы, переменные, константы, функции и процедуры, размещенные в разделе реализации.

      В разделе interface после оператора uses, содержащего список подключаемых элементов, можно видеть заготовку объявления класса вашей формы, подготовленную в Delphi. Имя класса формы – TForm1. Класс содержит два раздела: private – закрытый раздел класса, и  public – открытый раздел класса. То, что объявлено в разделе public, будет доступно для других классов и модулей. То, что объявлено в разделе private, доступно только в пределах данного модуля. 

В таблице, расположенной  ниже описаны те компоненты, которые  использовались при создании программы.  

Таблица 1 

1 2 3
Shape (фигура) Размещает на форме  объект, представляющий собой правильную геометрическую программу
Label (метка) Размещает в  форме объекты, предназначенные для создания текстовой информации, надписей и примечаний.
Edit (текстовое поле) Размещает в  форме текстовое поле, предназначенное для ввода текстовой информации, чисел и дат.
Button (кнопка управления) Размещает в  форме кнопки управления для инициации  действий, выполнения команд, запуска  программ.
MainMenu (главное меню) Размещает на форме  главное меню.
ComboBox (поле со списком) Создает в форме  объект, содержащий одновременно поле ввода и раскрывающийся список

3.3. Процесс отладки  программы

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

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

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

         При входе в программу можно  увидеть главную форму (см. рисунок  1)

       рис. 1

         В ходе отладки программы трудностей  не возникло. Нарушений работы программы замечено не было, как на компьютере разработчика, так и на компьютерах лаборатории вычислительного центра.

3.4. Анализ результатов  решения задачи

            Результатом разработки, проведенной  в данном курсовом проекте,  стала система, удовлетворяющая следующим требованиям:

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

           В целом цель, поставленная в начале курсового проектирования, была достигнута. В программу вошли практически все необходимые требования для пользователя.

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

 

3.5. Инструкция пользователя

При входе в  программу появляется, мы видим главную форму.

Пункт меню Файл - Настройки отвечает за установление настроек программы.

Затем при помощи размещаются корабли на правом игровом  поле.

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

После завершения игры её можно сохранить в формате HTML, выполнив пункт меню Файл - Сохранить в HTML.

 

Заключение

            Результатом разработки, проведенной  в данном курсовом проекте,  стала система, удовлетворяющая  следующим требованиям:

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

           В целом цель, поставленная в начале дипломного проектирования, была достигнута. В программу вошли все необходимые требования для пользователя.

 

ПРИЛОЖЕНИЕ 1

Исходный  код программы

unit MainUnit;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls, StdCtrls, Buttons, Menus, Gauges, ComCtrls, XPMan,

  MMSystem, Registry;

type

  TFormMain = class(TForm)

    StatusGroupBox: TGroupBox;

    StatusLabel: TLabel;

    MissShape: TShape;

    TargetShape: TShape;

    MissLabel: TLabel;

    TargetLabel: TLabel;

    RotateButton: TSpeedButton;

    DelButton: TSpeedButton;

    DeleteShipPopupMenu: TPopupMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    PlayButton: TSpeedButton;

    KillShape: TShape;

    KillLabel: TLabel;

    Bevel1: TBevel;

    N11: TMenuItem;

    N21: TMenuItem;

    N31: TMenuItem;

    N41: TMenuItem;

    MainMenu1: TMainMenu;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    N8: TMenuItem;

    N9: TMenuItem;

    N6: TMenuItem;

    N7: TMenuItem;

    N10: TMenuItem;

    N12: TMenuItem;

    N13: TMenuItem;

    N14: TMenuItem;

    procedure FormShow(Sender: TObject);

    procedure Shape1MouseUp(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure FormCreate(Sender: TObject);

    procedure Shape65MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure Shape65MouseUp(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure N2Click(Sender: TObject);

    procedure PlayButtonClick(Sender: TObject);

    procedure N9Click(Sender: TObject);

    procedure ReDrawAll;

    procedure SetShip( StartTag:integer; FinishTag:integer; BoP:char );

    procedure ReDraw( BoP:char );

    procedure NewGame;

    procedure Play;

    function WriteCount:string;

    procedure Zero( BoP:char );

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

Информация о работе Разработка игры морской бой