Модели сложных систем

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

?но-ориентированное программирование с использованием Delphi. - Киев: НПИФ "ДиаСофт", 1999.

. Г. Шилдт. Самоучитель Delphi 5. BHV-Санкт-Петербург. 2000

. П. Дарахвелидзе, Е. Марков Delphi - среда визуального программирования. - BHV-Санкт-Петербург 1996.

 

 

Приложения

 

ПРИЛОЖЕНИЕ А

 

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

 

Project15.dpr

program Project15;

Forms,

Unit2 in 'Unit2.pas' {Form1},

okean in 'okean.pas';

{$R *.res}

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;..pasUnit2;

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

Dialogs, ExtCtrls, StdCtrls, Buttons, ImgList, okean, Spin;

TForm1 = class(TForm)

Image1: TImage;

Image2: TImage;

Image3: TImage;

ImageList2: TImageList;

Field: TImage;

Timer1: TTimer;

Label5: TLabel;

Label1: TLabel;

Label2: TLabel;

Label8: TLabel;

ComboBox1: TComboBox;

Label3: TLabel;

Label9: TLabel;

SpinEdit4: TSpinEdit;

SpinEdit8: TSpinEdit;

Label4: TLabel;

Label7: TLabel;

SpinEdit1: TSpinEdit;

SpinEdit2: TSpinEdit;

SpinEdit3: TSpinEdit;

SpinEdit5: TSpinEdit;

procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormCreate(Sender: TObject);

procedure Image2MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Image2MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Image3MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Timer1Timer(Sender: TObject);

procedure Image1Click(Sender: TObject);

procedure Image2Click(Sender: TObject);

procedure FieldMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

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

Y: Integer);

procedure SpinEdit1Change(Sender: TObject);

procedure SpinEdit2Change(Sender: TObject);

procedure SpinEdit3Change(Sender: TObject);

procedure SpinEdit5Change(Sender: TObject);

 

private

{ Private declarations }

public

{ Public declarations }

end;

Form1: TForm1;

{$R *.dfm}

p0k0x0: TBitmap;

p0k0x3: TBitmap;

p0k0x6: TBitmap;

p0k0x8: TBitmap;

p0k3x0: TBitmap;

p0k3x3: TBitmap;

p0k3x6: TBitmap;

p0k3x8: TBitmap;

p0k6x0: TBitmap;

p0k6x3: TBitmap;

p0k6x6: TBitmap;

p0k6x8: TBitmap;

p0k8x0: TBitmap;

p0k8x3: TBitmap;

p0k8x6: TBitmap;

p0k8x8: TBitmap;

p3k0x0: TBitmap;

p3k0x3: TBitmap;

p3k0x6: TBitmap;

p3k0x8: TBitmap;

p3k3x0: TBitmap;

p3k3x3: TBitmap;

p3k3x6: TBitmap;

p3k3x8: TBitmap;

p3k6x0: TBitmap;

p3k6x3: TBitmap;

p3k6x6: TBitmap;

p3k6x8: TBitmap;

p3k8x0: TBitmap;

p3k8x3: TBitmap;

p3k8x6: TBitmap;

p3k8x8: TBitmap;

p6k0x0: TBitmap;

p6k0x3: TBitmap;

p6k0x6: TBitmap;

p6k0x8: TBitmap;

p6k3x0: TBitmap;

p6k3x3: TBitmap;

p6k3x6: TBitmap;

p6k3x8: TBitmap;

p6k6x0: TBitmap;

p6k6x3: TBitmap;

p6k6x6: TBitmap;

p6k6x8: TBitmap;

p6k8x0: TBitmap;

p6k8x3: TBitmap;

p6k8x6: TBitmap;

p6k8x8: TBitmap;

p8k0x0: TBitmap;

p8k0x3: TBitmap;

p8k0x6: TBitmap;

p8k0x8: TBitmap;

p8k3x0: TBitmap;

p8k3x3: TBitmap;

p8k3x6: TBitmap;

p8k3x8: TBitmap;

p8k6x0: TBitmap;

p8k6x3: TBitmap;

p8k6x6: TBitmap;

p8k6x8: TBitmap;

p8k8x0: TBitmap;

p8k8x3: TBitmap;

p8k8x6: TBitmap;

p8k8x8: TBitmap;

Play, Play_d, Nextb, Next_d, Pause, Pause_d, start, stop: TBitmap;

Playing, go: boolean;TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

if playing then

begin

Image1.Canvas.Draw(0,0,Pause_d);

playing:= false;

end else

begin

Image1.Canvas.Draw(0,0,Play_d);

playing:= true;

end;;TForm1.Image3MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

if go then

begin

Image3.Canvas.Draw(0,0,start);

go:= false;

Timer1.Enabled := not Timer1.Enabled;

end else

begin

Image3.Canvas.Draw(0,0,stop);

go:= true;

FormCreate(Sender);

Timer1.Enabled := not Timer1.Enabled;

end;;

{+}TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

if playing then

Image1.Canvas.Draw(0,0,Pause) else

Image1.Canvas.Draw(0,0,Play);

image2.Visible:=not image2.Visible;;TForm1.FormCreate(Sender: TObject);

CellSize:=52;

MaxLife:=100;

PoraDelK:=SpinEdit2.Value;

PoraDelX:=SpinEdit5.Value;

MaxGolK:=10;

MaxGolX:=10;

EST:=8;

AmountAtTheBeginingK:=SpinEdit1.Value;

AmountAtTheBeginingX := SpinEdit3.Value;

MAXSIZEX := SpinEdit4.Value;

MAXSIZEY := SpinEdit8.Value;

rasp:=ComboBox1.Text;

randomize;

Field.Left:=8;

Field.Top:=56;

Field.Width:=MAXSIZEX*CELLSIZE+1;

Field.Height:=MAXSIZEY*CELLSIZE+1;

Form1.Width:=MAXSIZEX*CELLSIZE+23;

Form1.Height:=MAXSIZEY*CELLSIZE+96;

Form1.Color:=rgb(236,233,217);

counter:=0;

go:=true;

playing:=true;

Play := TBitmap.Create;

ImageList2.GetBitmap(0,Play);

Play_d := TBitmap.Create;

ImageList2.GetBitmap(1,Play_d);

Pause := TBitmap.Create;

ImageList2.GetBitmap(2,Pause);

Pause_d := TBitmap.Create;

ImageList2.GetBitmap(3,Pause_d);

Nextb := TBitmap.Create;

ImageList2.GetBitmap(4,Nextb);

Next_d := TBitmap.Create;

ImageList2.GetBitmap(5,Next_d);

start := TBitmap.Create;

ImageList2.GetBitmap(6,start);

stop := TBitmap.Create;

ImageList2.GetBitmap(7,stop);

Image1.Canvas.Draw(0,0,Pause);

Image2.Canvas.Draw(0,0,Nextb);

Image3.Canvas.Draw(0,0,stop);

Syst := TOkean.Init(Field.Canvas);;TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

Image2.Canvas.Draw(0,0,Next_d);;TForm1.Image2MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

Image2.Canvas.Draw(0,0,Nextb);;TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

Play.Free;

Play_d.Free;

Nextb.Free;

Next_d.Free;

Pause.Free;

Pause_d.Free;;TForm1.Timer1Timer(Sender: TObject);

Syst.Step;;TForm1.Image1Click(Sender: TObject);

Timer1.Enabled := not Timer1.Enabled;;TForm1.Image2Click(Sender: TObject);

Syst.Step;;TForm1.FieldMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

nx,ny:integer;

{nx:=(x div CELLSIZE)+1;

ny:=(y div CELLSIZE)+1;

if button=mbRight then

if syst.Mas[nx,ny].eda<>nil then

with syst.mas[nx,ny].eda^ do

begin

if Amount+20<=100 then Amount:=Amount+10 else

Amount:=0;

end;

if button=mbleft then

syst.Add(nx,ny,true); };TForm1.FieldMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

nx,ny:integer;

{ nx:=(x div CELLSIZE)+1;

ny:=(y div CELLSIZE)+1;

with syst.mas[nx,ny] do

begin

Field.Hint := 'TInfuz'+#13#10;

if Creature <> nil then

begin

Field.Hint:=Field.Hint+'Life='+inttostr(Creature.Life)+#13#10;

Field.Hint:=Field.Hint+'Gol='+inttostr(Creature.Gol)+#13#10;

Field.Hint:=Field.Hint+'Syt='+inttostr(Creature.Syt)+#13#10;

end else Field.Hint:=Field.Hint+'nil'+#13#10;

Field.Hint :=Field.Hint+#13#10+'THavka'+#13#10;

if Eda <> nil then

Field.Hint:=Field.Hint+'Amount='+inttostr(Eda.Amount)

else Field.Hint:=Field.Hint+'nil';

end; };TForm1.SpinEdit1Change(Sender: TObject);

AmountAtTheBeginingK:=SpinEdit1.Value;;TForm1.SpinEdit3Change(Sender: TObject);

AmountAtTheBeginingX := SpinEdit3.Value;;TForm1.SpinEdit2Change(Sender: TObject);

PoraDelK:=SpinEdit2.Value;;TForm1.SpinEdit5Change(Sender: TObject);

PoraDelX:=SpinEdit5.Value;;..pasokean;

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

Dialogs, StdCtrls;=record

dx,dy:integer;

end;=class

public

x,y:integer;

private

constructor Init(InitX, InitY: integer);

procedure Draw;

destructor Done;

end;=class(TKletka)

public

Amount: integer;

Canv: TCanvas;

private

constructor Init(initx, inity, kol: integer; Canva:TCanvas)