Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка (митрович ивана).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
792.58 Кб
Скачать

1.4 Блок схема

1.5 Листинг программы

unit Unit1;

interface

uses

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

Dialogs, ImgList, StdCtrls, ExtCtrls, Menus, Grids, Spin;

type

Tkosts = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

Panel1: TPanel;

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

Images: TImageList;

LabelScore: TLabel;

spin: TSpinEdit;

SpinNumb: TSpinEdit;

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormPaint(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

kosts: Tkosts;

Score:integer;

t1 :integer=-1;

t2 :integer=-1;

implementation

uses Unit2, Unit3, RusDlg;

{$R *.dfm}

procedure Tkosts.N3Click(Sender: TObject);

begin

helps.ShowModal;

end;

procedure Tkosts.N4Click(Sender: TObject);

begin

abouts.ShowModal;

end;

procedure Tkosts.N1Click(Sender: TObject);

begin

Score := 100;

LabelScore.Caption :=format('Ваша сумма :%d',[Score]);

LabelScore.visible:=true;

Spin.MaxValue := 100;

Panel1.Show;

end;

procedure Tkosts.Button1Click(Sender: TObject);

var i:integer;

begin

if not (SpinNumb.Value in [2..12]) then

begin

Error('Число должно быть от 2 до 12');

exit;

end;

if Spin.Value <1 then

begin

Error('Ставка должна быть больше 0');

exit;

end;

if Spin.Value > Score then

begin

Error('Ставка должна быть меньше текущего счета');

exit;

end;

for i:=1 to 10 do

begin

t1:=random(6);

t2:=random(6);

FormPaint(nil);

sleep(100);

end;

i:=t1+t2+2;

if ((i<7) and (SpinNumb.Value<7))

or ((i>7) and (SpinNumb.Value>7)) then

begin

Notify('Вы выиграли!!'#13'Ставка %d'#13'Выигрыш %d',[Spin.value,Spin.value]);

Inc(Score,Spin.value);

end else

if i=SpinNumb.Value then

begin

Notify('Вы выиграли!!'#13'Ставка %d'#13'Выигрыш %d',[Spin.value,Spin.value*4]);

Inc(Score,Spin.value*4);

LabelScore.Caption := IntToStr(Score);

end else

begin

Notify('Вы Проигали!!'#13'Ставка %d',[Spin.value]);

Dec(Score,Spin.value);

end;

LabelScore.Caption :=format('Ваша сумма :%d',[Score]);

if score=0 then

begin

Notify('Вы проигали!!'#13'Остаток на счету - 0.');

t1:=-1;

Panel1.Hide;

LabelScore.Hide;

refresh;

end;

spin.MaxValue := Score;

if spin.Value>score then Spin.Value := score;

end;

procedure Tkosts.FormCreate(Sender: TObject);

begin

randomize;

end;

procedure Tkosts.FormPaint(Sender: TObject);

begin

if not Panel1.Visible then exit;

if t1=-1 then exit;

Images.Draw(canvas,75,50,t1);

Images.Draw(canvas,155,50,t2);

end;

end.

1.6 Тестирование

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

Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку.

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

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

Ставка проиграна, если не имеет место ни одна из описанных ситуаций.