Смекни!
smekni.com

Игра Кости (стр. 4 из 6)

В любой момент можно завершить трассировку и продолжить выполнение программы в реальном темпе (зависит от скорости работы процессора). Для этого надо из меню Run выбрать команду Run.

При тестировании программы «Кости», не контролируемых программой ошибок, не обнаружено.

3. Внедрение

§ Условия выполнения программы.

Для работы программы достаточно Pentium 100, 8мб оперативной памяти, около 1мб свободного пространства на жестком диске, Windows 95, дополнительные устройства (дисководы гибких дисков, CDROM, принтер и т.п.) программой не используются.

§ Выполнение программы

Для запуска программы необходимо открыть папку my project и запустить исполняемый файл Kosti.exe. В результате откроется окно программы (Aboutbox3) ввода пути к AVI-файлам. В этом окне необходимо ввести пути к файлам Kos.avi и Kos1.avi. Это можно сделать двумя способами: прописать путь в поля для ввода либо кликнуть на имени файла. (Для удобства нужно поместить exe-файл в ту же директорию, что и avi-файлы.) После нажатия кнопки OK (в случае правильного ввода) появляется основное окно программы (игровое поле). Здесь имеются два поля для ввода числа и ставки. Ввод в эти поля ограничен, т.е. игрок может вводить только цифры. В поле, помеченное как «Введите число» необходимо ввести число от двух до двенадцати; в поле, помеченное как «Сделайте ставку» необходимо ввести число, не превышающее количество очков в банке. После ввода числа и ставки в соответствующие поля игроку остается нажать кнопку «Играть». В случае правильного ввода числа и ставки проиграются AVI-файлы (впечатление брошенных кубиков) и появятся изображения кубиков соответствующие выпавшим. Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку. Если сумма выпавших цифр больше 7 и играющий задумал число большее 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка. В другом случае игрок проигрывает ставку.

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

В нижнем левом углу формы находится кнопка «выход». С её помощью можно в любой момент выйти из программы.

§ Сообщения оператору

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

- Первое сообщение об ошибке может возникнуть во время ввода пути к AVI-файлам. В случае ошибки возникнет следующее сообщение:

В этом случае следует нажать кнопку ОК и повторить ввод (см. выполнение программы).

- Следующее сообщение может возникнуть, если пользователь не введя число и ставку, нажал кнопку «играть».

Следует нажать ОК

И ввести число и ставку.

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

и

В обоих случаях пользователю необходимо кликнуть ОК и выполнить предписания сообщения.

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

В этом случае также следует

исправить ошибку.

- На случай если пользователь случайно нажал кнопку «выход», “крестик ” или соответствующий пункт меню, предусмотрено сообщение – подтверждение на закрытие программы.

Если пользователь действительно

хочет выйти следует нажать – Да,

если нет – Нет.

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

1. Игра закончилась победой игрока.

Следует нажать ОК. Далее кнопка «играть»

будет недоступна пока не будет нажата кнопка

«заново».

2. Игра закончилась поражением игрока.

Следует нажать ОК. Далее кнопка

«играть» будет недоступна

пока не будет нажата кнопка

«заново».

Заключение

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

Программа, написанная мной в процессе разработки курсового проекта, является крошечным примером мультимедийных возможностей Delphi. В программе используются компоненты необходимые для воспроизведения AVI-файлов. В Delphi имеется компонент MediaPlayer!!!

С помощью Delphi можно написать программу – проигрыватель, типа Light Alloy; программу, которая будет управлять приводом CD-ROMа; и т.д.

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

Библиографический список

1. Лабзина Т.А. Юнита №5. Система программирования Delphi. Москва 2001 г. – 138 стр.

2. Пестриков В.М. , Маслобоев А.Н. Turbo Pascal 7.0. Санкт-Петербург; издательство НиТ, 2003 г. – 368 стр.

3. Культин Н. Основы программирования в Delphi 7; издательство БХВ-Петербург, 2003 г. – 598 стр.

4. Андреев А.Г. Delphi. Петербург, 2001 г. – 960стр.

5. Маленков И.С. Программирование. Петербург, 1998 г. – 340стр.

6. Абдулов К.П. Delphi и Windows. Москва, 2002 г. – 756стр.

Приложение

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

unit Abbox1;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,

Buttons, ExtCtrls;

type

TAboutBox1 = class(TForm)

Panel1: TPanel;

ProgramIcon: TImage;

l1: TLabel;

Version: TLabel;

Copyright: TLabel;

OKButton: TButton;

Label1: TLabel;

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AboutBox1: TAboutBox1;

implementation

{$R *.DFM}

procedure TAboutBox1.FormActivate(Sender: TObject);

// При активации формы присваиваем свойству Caption метки строку.

begin

l1.Caption:=' Курсовой проект. Игра "Кости". '+#13+

'Разработал студент группы Оин-309-11'+#13+

'Вася Пупкин';

end;

end.

unit abbox2;

// В этом модуле используются ресурсы. Поэтому указываем файл ресурсов.

{r k.res}

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,

Buttons, ExtCtrls;

type

TAboutBox2 = class(TForm)

Panel1: TPanel;

image: TImage;

lab2: TLabel;

lab3: TLabel;

lab4: TLabel;

lab1: TLabel;

OKButton: TButton;

Image1: TImage;

procedure FormActivate(Sender: TObject);

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

Y: Integer);

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

Y: Integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AboutBox2: TAboutBox2;

// Переменные, в которые будут загружены картинки.

baks,kub:tbitmap;

implementation

{$R *.DFM}

procedure TAboutBox2.FormActivate(Sender: TObject);

// Операторы, которые будут выполнены при активации формы.

// На работу программы особого влияния не оказывают.

// Сделано для красивого оформления.

begin

// Создаём битовый образ для вывода картинки.

kub:=tbitmap.Create;

// Загружаем картинку из файла ресурсов.

kub.LoadFromResourceName(hinstance,'kub');

// Выводим картинку

image.Canvas.Draw(0,0,kub);

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Прячем пока ненужные компоненты.

lab1.Visible:=false;

lab3.Visible:=false;

lab4.Visible:=false;

image1.Visible:=false;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Показываем компонент с первой картинкой.

image.Visible:=true;

// Меняем цвет компонентов.

panel1.Color:=clscrollbar;

aboutbox2.Color:=clhighlight;

// Показываем метку и выводим информацию.

lab2.Visible:=true;

lab2.Caption:=' Правила просты - угадай сумму цифр'+#13+

'двух костей и выиграй ставку увеличенную'+#13+

'в 4 раза. Если и загаданное число и сумма '+#13+

'цифр костей больше 7 ставка - выирана.'+#13+

'Если и загаданное число и сумма цифр '+#13+

'костей меньше 7 ставка - также выиграна.'+#13+

'В других случаях ставка будет проиграна.' ;

end;

procedure TAboutBox2.OKButtonMouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

// При движении указателя на кнопке "OK" для красоты меняем внешний вид

// окна.

begin

// Прячем ненужные компоненты.

lab2.Visible:=false;

image.Visible:=false;

// Показываем нужные.

lab1.Visible:=true;

lab3.Visible:=true;

lab4.Visible:=true;

image1.Visible:=true;

// Создаём битовый образ второй картинки.

baks:=tbitmap.Create;

// Загружаем вторую картинку из файла ресурсов.

baks.LoadFromResourceName(hinstance,'baks');

// Выводим вторую картинку.

image1.Canvas.Draw(0,0,baks);

// Меняем цвет компонентов.

panel1.Color:=clinactivecaption;

aboutbox2.Color:=clinactivecaptiontext;

end;

procedure TAboutBox2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

// При движении указателя на форме меняем внешний вид окна на первоначальный.

// Для чего вызываем процедуру активации формы.

begin

formactivate(sender);

end;

end.

unit abbox3;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,

Buttons, ExtCtrls, MPlayer, FileCtrl;

type

TAboutBox3 = class(TForm)

Panel1: TPanel;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Label4: TLabel;

Button1: TButton;

Button2: TButton;

file1: TFileListBox;

dir1: TDirectoryListBox;

disk1: TDriveComboBox;

disk2: TDriveComboBox;

dir2: TDirectoryListBox;

file2: TFileListBox;

Panel5: TPanel;

Med1: TMediaPlayer;

Med2: TMediaPlayer;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure disk1Change(Sender: TObject);

procedure dir1Change(Sender: TObject);

procedure disk2Change(Sender: TObject);

procedure dir2Change(Sender: TObject);

procedure file1Click(Sender: TObject);

procedure file2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AboutBox3: TAboutBox3;

implementation

// Подключаем модули основной формы и Aboutbox-а сообщающего об ошибке.

uses Cursproj,abbox4;

{$R *.DFM}

procedure TAboutBox3.Button1Click(Sender: TObject);

// Обработка события Onclick кнопки 'Ok'.

begin

// Присваеваем свойствам "FileName" медиаплейеров свойства Text Edit-ов.

med1.FileName:=edit1.Text;

med2.FileName:=edit2.Text;

// Следующий блок программы - защита от неверного пути к AVI-файлам.

// Пытаемся открыть медиаплейеры. Если возникнет ошибка (исключение)

// будут выполнены операторы после служебного слова 'Except'.

try

med1.Open;