"Эверест" - Центр Практической Информатики

представляет вводный курс

"Delphi для чайников"

Урок 13. Игра "Игровой автомат".

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

Итак, для игры нам необходимо: 3 label-а (для вывода информации о том, какие фишки выпали), кнопка для начала игры, информация о выигрыше, информация о моем счете.

1. Сделайте свою форму похожей на мою:


Логика программы:
В начале игры пользователю выдаем сумму, равную 1000р.
При нажатии на кнопку Играем в label1, label2 в label3 заносятся разные случайные цифры. При
совпадении всех трех чисел- выводим надпись о победе, а сумму ставки увеличиваем в 5 раз. В случае проигрыша сумму игрока уменьшаем на 100р- это наша ставка.

Начинаем программировать кнопку Играем:
3. Сделайте двойной щелчок по кнопке Играем.

4. В обработчике события напишем (то, что выделено цветом):
randomize; - запускаем генератор случайных чисел

x:= random(3)+1; - вводим переменную, отвечающую за первое число- x. Этой переменной присваиваем любое число от 1 до 3. (Напомню, что random(3) использовать нельзя, т.к. компьютер в этом случае генерирует число в промежутке от 0 до 2, поэтому независимо от результата я прибавил число 1).

label1.Caption:=IntToStr(x);- выводим число на экран.

5. Добавляем операторы для других чисел:
y:= random(3)+1;
label2.Caption:=IntToStr(y);
z:= random(3)+1;
label3.Caption:=IntToStr(z);

Что теперь? Сравниваем их, if ((x=y) and (x=z) and (y=z))

и если они равны, то увеличиваем сумму на 500р (за выигрыш) then sum:= sum+ 100*5;
иначе - уменьшаем сумму на 100 руб (за проигрыш) else sum:= sum-100;

6. Продолжаем программировать кнопку:

Выводим на экран сведения о деньгах: label5.Caption:='У вас на счету: ' + IntToStr (Sum);
Вводим переменную для счета сыгранных игр, и, поскольку один раз уже сыграли , то n:=n+1;
Выводим на экран сведения о количестве сыгранных игр:

label6.Caption:='Количество игр: ' + IntToStr (n);
Заканчиваем игру, когда пользователь сыграет 10 раз:
if n=10 then
begin
showMessage ('Игра закончена! У вас ' + IntToStr (Sum)+' руб');
form1.Close;
end;

 

Описываем переменные.

7. В нашей программе участвуют 5 переменных. 3 из них внутренние- это x,y,z. Внутренние- это значит используются только внутри данной процедуры. Есть и другое название- локальные. Их описывают внутри процедуры, сразу после названия. Посмотрите, сделайте так же у себя:

procedure TForm1.Button1Click(Sender: TObject);
var x,y,z:integer;
begin

8. Две другие будут участвовать еще и в процедуре создания формы: OnCreate. Поэтому в раздел implementations запишите их, как у меня:

implementation
var n,sum:integer;
{$R *.DFM}

10. И последнее. Надо задать начальные значение для счетчика n= 0 и для Sum= 1000. Я надеюсь Вы помните как это делается- В процедуре создания формы OnCreate

Если не вспомнили, посмотрите приведенный ниже код, сверьте его со своим:


unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;

implementation
var n,sum:integer;
{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var x,y,z:integer;
begin
randomize;
x:= random(3)+1;
label1.Caption:=IntToStr(x);
y:= random(3)+1;
label2.Caption:=IntToStr(y);
z:= random(3)+1;
label3.Caption:=IntToStr(z);
if ((x=y) and (x=z) and (y=z))
then
sum:= sum+ 100*5;
else
sum:= sum-100;
label5.Caption:='У вас на счету: ' + IntToStr (Sum);
n:=n+1;
label6.Caption:='Количество игр: ' + IntToStr (n);
if n=10 then
begin
showMessage ('Игра закончена! У вас ' + IntToStr (Sum)+' руб');
form1.Close;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
n:=0;
sum:=1000;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

end.

Примечание : Обращаю ваше внимание на то, что данный курс ознакомительный. Если Вы желаете действительно научиться программированию и получить в руки мощный инструмент для профессиональной работы, то приглашаем Вас на наш основной курс по Delphi.

Вся информация находится по адресу: http://umnik.rikt.ru/everest/distant/delphi_os.htm

Учиться у нас выгодно. Не верите?

Внимание : Центр практической информатики "Эверест" объявляет об увеличении стоимости обучения на платных курсах с 1-го августа 2004 года на 10%. Для тех, кто уже проходит обучение, либо оплатит обучение до 1.08.04. цена менятся не будет.

У Вас есть шанс учиться осенью по ценам лета. Не упускайте Ваш шанс....

На следующем уроке : мы сделаем игру красивой.

Посмотреть архив данной рассылки Вы сможете на нашем сайте по адресу: http://umnik.rikt.ru/projectgame/learn.html


ШСД поможет вам открыть Свое Дело!      

 

Rambler's Top100  
  Союз образовательных сайтов     InterSib Каталог ресурсов Сибири