Игровая программа "Нарды"

Автор работы: Пользователь скрыл имя, 28 Января 2011 в 12:02, курсовая работа

Описание работы

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

Содержание работы

Введение 2
1 Общая часть 4
1.1 Постановка задачи 4
1.2 Технико-математическое описание 6
1.3 Программное обеспечение 9
1.4 Состав и параметры технических и программных средств 12
2 Специальная часть 14
2.1 Описание алгоритмов 14
2.2 Описание работы программы 16
2.3 Инструкция по выполнению программы 18
2.4 Тестирование и отладка 22
2.5 Контрольный пример 24
Заключение 28
Список литературы 30
Приложение А. Текст программы 31

Файлы: 1 файл

Пояснительная записка.doc

— 312.50 Кб (Скачать файл)

      Выйти из программы можно в любое  время нажатием на кнопку «ВЫХОД».

      При нажатии на кнопку «СПРАВКА» активируется форма с расположенным на ней  вэб-браузером, в котором отображаются правила игры (рисунок 6). 
 

Рисунок 6 – Форма «СПРАВКА».

      При нажатии на кнопку «О ПРОГРАММЕ» активируется форма, на которой отображается информация о разработчиках и о программе (рисунок 7). 
 

Рисунок 7 – Форма «О ПРОГРОАММЕ»

 

          2.4 Тестирование и отладка

       Существует  три основных типа ошибок, которые могут явиться причиной прекращения выполнения программы или неверного результата:

  • синтаксические ошибки;
  • ошибки выполнения;
  • логические ошибки.

       Синтаксические  ошибки обнаруживаются при компиляции или запуске программы.

       Большинство синтаксических ошибок легко обнаруживается и устраняется.

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

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

Таблица 2.2 – Ошибки при разработке программы.

Ошибка Тип ошибки Метод устранения

Out of range

логическая

Добавлены дополнительные условия, сокращен диапазон выполнения цикла.

Некорректоне  определение присутствия игрока в «доме» Логическая Добавлено новое условие

Ошибка

Тип ошибки

Метод устранения

Cant find file

выполнения

Прописан  новый путь к файлам

Access violation filed

логическая

Добавлено новое исключение в алгоритм

Возможность совершить бесконечное количество ходов

логическая

Введена автоматическая смена игрока перед  генерацией нового хода

Невозможность победы

логическая

Отключение  процедуры проверки возможности хода при условии, что игрок «пришел в «дом»

Некорректные  результаты процедуры проверки возможных, ходов при первом ходе

логическая

Добавлено дополнительное условие, изменен алгоритм проверки

Неккоректные  результаты процедуры отображения игрового процесса

логическая

Добавлена конструкция begin…end;

Совпадение  имен массива и процедуры

логическая

Исправлено  имя процедуры

Обнуление основных переменных при отмене хода сразу после загрузки ранее сохраненной  игры

логическая

Добавлено заполнение резервных переменных

Некорректное  действие при нажатии кнопки «НОВАЯ ИГРА»

логическая

Добавлено занесение начальных данных в  основные переменные

 

        2.5 Контрольный пример

 

       В качестве контрольного примера рассмотрим игру между двумя игроками: «Игрок 1» и «Игрок 2».

       При нажатии на кнопку «НАЧАТЬ ИГРУ»  выводится сообщение «Начинающий  игрок определен случайным образом, бросьте зары» (рисунок 8).  
 

       Рисунок 8 – Сообщение о начале игры.

        

       Один  из игроков нажимает на кубики, выводится  сообщение: «Ходят белые». Превый игрок начинает свой ход. Доступные ходы – три и два. «Игрок 1» перемещает фишку на три, а затем на две клетки вперед (рисунок 9).  
 

       Рисунок 9 – Первый ход «Игрока 1». 

       «Игрок 2» нажимает на кубики, вывдится сообщение: «Ходят черные». «Игрок 2» совершает свой ход, «Игрок 1» нажимает на кубики. Спустя несколько ходов Игроку 1 доступно четыре хода по пять ячеек, он совершает три хода и нажимает на кубики. Программа выдает сообщение об ошибке: «Ход не завершен!» (Рисунок 10). 
 

       Рисунок 10 – Ход не завершен. 

         Спустя еще несколько ходов  «Игроку 2» «выпадает» на кубиках шесть и три, но ход «три» недоступен, «Игрок 2» совершает ход «шесть» и передает ход «Игроку 1». Игрок один нажимает на кубики, «выпадает» один и четыре, но ни один из этих ходов не доступен. Выводится сообщение: «Вы не можете походиться»    (рисунок 11). Ход переходит к «Игроку 2». 
 

       Рисунок 11 – Невозможность совершить ход. 

       Игроки  совершили по 15 ходов, вид игрового поля перед сохранением изображен на рисунке 12. 

       Рисунок 12 – Игровой процесс перед сохранением. 

       Сохраняем игру под имеем «Игра1», выходим из игры. После этого загружаем «Игра1» и проверяем правильность загруженных данных. Вид игрового поля после загрузки изображен на рисунке 13. Все данные загружены верно, игроки продолжают партию. 

       Рисунок 13 – Игровой процесс после загрузки. 

       «Игрок 2» побеждает в партии, выводится сообщение: «Игра окончена, победили черные» (Рисунок 14). 

       

       Рисунок 14 – Сообщение о победе. 

 

Заключение

 
 

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

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

       Решение задачи получено с помощью методов  нелинейного программирования.

       Программным решением была выбрана: среда программирования Borland Delphi 7. Используемые средства разработки позволили создать качественный программный продукт, который можно использовать в развлекательных и развивающих целях.

       В процессе создания программы использовались приложения:

  • Adobe Photoshop CS3;
  • Microsoft FrontPage 2003;
  • Microsoft Office Word 2003;
  • Adobe Indesign CS3.

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

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

  • простота в использовании;
  • имеет наглядный и понятный интерфейс;
  • позволяет сохранять и загружать данные.

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

 

Список литературы

 

1 http://www.fpclub.ru/games/nardy/nardylong.php

2 Боровский А Н Программирование в Delphi 2005

3 Банкел Джулиан М. Фундаментальные алгоритмы и структуры данных в Delphi

4 Дерахвелидзе П. Г., Марков Е. П. Программирование в Delphi 7

5 Кенту М. Delphi7 для профессионалов

6 Фленов М. Е. Библия Delphi

7 Культин Н. Б. Основы программирования в Delphi 8 для Microsoft.NET Framework

 

Приложение А

(обязательное)

Текст программы 

Модуль  MAIN содержит главную форму и вызов основных процедур программы 
 

uses draw, game, save, load, exit, help, about; 

{$R *.dfm} 

procedure TForm1.FormCreate(Sender: TObject);

var i:integer;

begin

  getdir(0,path);

  status:=0;

  for i:=1 to 4 do bones[i]:=0;

  for i:=1 to 4 do bones2[i]:=0;

  varbones(sender);

  for i:=1 to 26 do mas[i,1]:=0;

  for i:=1 to 26 do mas[i,2]:=0;

  for i:=1 to 26 do mas2[i,1]:=0;

  for i:=1 to 26 do mas2[i,2]:=0;

  mas[1,1]:=1;

  mas[1,2]:=15;

  mas[13,1]:=2;

  mas[13,2]:=15;

  mas[25,1]:=1;

  mas[26,1]:=2;

  mas2[1,1]:=1;

  mas2[1,2]:=15;

  mas2[13,1]:=2;

  mas2[13,2]:=15;

  mas2[25,1]:=1;

  mas2[26,1]:=2;

  draw.visible(sender);

  draw.redraw(sender);

end; 

procedure TForm1.niClick(Sender: TObject); // i – от 1 до 24

begin

  game.variants(sender,1);

end; 

procedure TForm1.miClick(Sender: TObject); // i  - от 1 до 24

begin

  game.move(sender,1);

end; 

procedure TForm1.bldomclickClick(Sender: TObject);

begin

  game.movehouse(Sender,26,zar);

end; 

procedure TForm1.bones_clickClick(Sender: TObject);

begin

  game.bonesclick(sender);

end; 

procedure TForm1.Button1Click(Sender: TObject);

var z1,z2:integer;

begin

  If messagedlg('Вы действительно хотите начать новую игру?',mtinformation,[mbOk,mbCancel],0)=1 then begin

  formcreate(sender);

  z1:=random(6)+1;

  z2:=random(6)+1;

  if z1=z2 then form1.Button1Click(sender)

  else begin

  if z1>z2 then player:=2;

  if z2>z1 then player:=1;

  if z1<>z2 then status:=2;

  wf:=0;

  blf:=0;

  messagedlg('Начинающий  игрок определен случайным образом,  бросьте зары',mtinformation,[mbok],0);

  bones_click.Enabled:=true;

  end;

  end;

end; 
 

procedure TForm1.Button2Click(Sender: TObject);

var i,j:integer;

begin

  for i:= 1 to 26 do

    for j:= 1 to 2 do mas[i,j]:=mas2[i,j];

  for i:=1 to 4 do bones[i]:=bones2[i];

  golova:=0;

  draw.visible(sender);

  draw.redraw(sender);

  varbones(sender);

end; 

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

  form2.ShowModal;

end; 

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

form3.ShowModal;

end; 

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

form4.ShowModal;

end; 

procedure TForm1.SpeedButton4Click(Sender: TObject);

begin

form5.showmodal;

end; 

procedure TForm1.SpeedButton5Click(Sender: TObject);

begin

form4.ShowModal;

Информация о работе Игровая программа "Нарды"