
- •К дипломному проекту
- •Специальность 230105
- •Задание для дипломного проектирования Студентки 46-п группы Митрович Иване Незнаю
- •Реализация игровой модели «Кости»
- •Содержание
- •Раздел 1.Специальная часть 6
- •Раздел 2. Охрана труда 27
- •Введение
- •Раздел 1.Специальная часть
- •1.1 Постановка задачи.
- •1.2 Модель задачи.
- •1.3 Выбор языка программирования
- •1.4 Блок схема
- •1.5 Листинг программы
- •1.6 Тестирование
- •1.7 Руководство пользователя
- •Раздел 2. Охрана труда
- •2.1. Требования безопасности перед началом работы на персональном компьютере.
- •2.2. Требования безопасности во время работы на персональном компьютере.
- •2.3. Требования безопасности после окончания работы на персональном компьютере.
- •3.1 Расчет трудоемкости разработки программы
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, он также
выигрывает сделанную ставку.
Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка.
Ставка проиграна, если не имеет место ни одна из описанных ситуаций.