{**************************************************************************** Jyväskylän Yliopisto Tietotekniikan laitos GKOSyksy1999Harjoitustyö MachoMyyrä ja Taistelu Silakkka VIII ------------------------------------- tilanneMacho.pas pitää yllä tilannetta alustaa tai lataa tilanteen Tarvittavat tiedostot: tilanne.pas tilannemacho.pas version : 0.1 by : Sami Manninen ja Saku Kukonlehto date : 28.11.1999 comments: -tilanne Machomyyräään ja Taistelusilakkaan -virtuaalinen metodi talletaKaikki, joka tallettaa TTilanteen attribuutit ja TTilanneMachon Talletet taulukkoon laitetut arvot. version: 0.2 by: Sami Manninen date : 28.11.1999 comments: - lisätty matopelin kivien ja laatikoiden laskanta ****************************************************************************} unit TilanneMacho; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Tilanne; type TTilanneMacho = class(TTilanne) private FMatolaivat: String; Talletet : Taulu; FKivet : String; FLaatikot : String; procedure AsetaMatolaivat(Matolaivat:String); procedure AsetaKivet(Kivet:String); procedure AsetaLaatikot(Laatikot:String); protected procedure OletusLuvut; virtual; public constructor Create (AOwner:TComponent); overload; override; constructor Create (AOwner:TComponent;nimi: String);reintroduce; overload; destructor Destroy;override; function AnnaMatolaivat : String; function AnnaLaatikot : String; function AnnaKivet : String; procedure KasvataMatolaivat; procedure LaskeKivet; procedure LaskeLaatikot; procedure VahennaMatolaivat; procedure Paivitys; procedure TalletaKaikki; virtual; published property Matolaivat :String read FMatolaivat write AsetaMatolaivat; property Kivet :String read FKivet write AsetaKivet; property Laatikot :String read FLaatikot write AsetaLaatikot; end; procedure Register; implementation { TTilanneMacho } constructor TTilanneMacho.Create(AOwner: TComponent; nimi: String); begin inherited Create(AOwner, nimi); OletusLuvut; end; constructor TTilanneMacho.Create(AOwner: TComponent); begin inherited Create(AOwner); OletusLuvut; Matolaivat:= Talletet[0]; end; {************************************************************************} {************************************************************************} {************************************************************************} destructor TTilanneMacho.Destroy; begin Talletet := nil; inherited; end; {************************************************************************} {************************************************************************} {************************************************************************} function TTilanneMacho.AnnaMatolaivat: String; begin Result := Matolaivat; end; procedure TTilanneMacho.AsetaMatolaivat(Matolaivat: String); begin FMatolaivat :=Matolaivat; end; procedure TTilanneMacho.KasvataMatolaivat; var Apu:integer; begin Apu := (StrToInt(Matolaivat)); Inc(Apu); Matolaivat := IntToStr(Apu); Talletet[0] := Matolaivat; end; procedure TTilanneMacho.OletusLuvut; begin MatoLaivat:= '1'; Kivet:= '7'; Laatikot:='6'; setLength(Talletet,MuidenTalLkm); Talletet := GetTiedot; Paivitys; end; procedure TTilanneMacho.VahennaMatolaivat; var Apu:integer; begin Apu := (StrToInt(Matolaivat)); Inc(Apu,-1); Matolaivat := IntToStr(Apu); end; procedure TTilanneMacho.TalletaKaikki; begin talleta(talletet); end; function TTilanneMacho.AnnaKivet: String; begin Result:= Kivet; end; function TTilanneMacho.AnnaLaatikot: String; begin Result:= Laatikot; end; procedure TTilanneMacho.LaskeKivet; var Apu,Kivi:integer; begin Apu:= StrToInt(leveli); Kivi:= Apu + 6 + Random(4); Kivet:= IntToStr(Kivi); end; procedure TTilanneMacho.LaskeLaatikot; var Apu,Laatikko:integer; begin Apu:= StrToInt(leveli); Laatikko:= Apu + 3 + Random(4); Laatikot:= IntToStr(Laatikko); end; procedure TTilanneMacho.AsetaKivet(Kivet: String); begin FKivet :=Kivet; end; procedure TTilanneMacho.AsetaLaatikot(Laatikot: String); begin FLaatikot :=Laatikot; end; procedure TTilanneMacho.Paivitys; begin Matolaivat:=Talletet[0]; end; procedure Register; begin RegisterComponents('Silli', [TTilanneMacho]); end; end.