UNIT uCritter;
(* ******************************************************************** *)
(* K L A S S E : TCritter *)
(* -------------------------------------------------------------------- *)
(* Version : 2.4 *)
(* Autor : (c) 2004, Siegfried Spolwig *)
(* Beschreibung: Die Klasse ist Oberklasse fuer alles, was sich bewegt *)
(* (Creatures, Charaktere). *)
(* *)
(* Compiler : Delphi 6.0 *)
(* Aenderungen : 0.9 06-MAR-04 *)
(* 2.2 20-JUL-04 s. Doc *)
(* 2.2.1. 14-MAR-05 TRichtung geändert *)
(* 2.4 18-APR-05 Vor geändert (Blackhole) *)
(* ******************************************************************** *)
INTERFACE
// =======================================================================
uses
uItem;
type
TRichtung = (Nord,Ost,Sued,West);
TGeschwindigkeit = 1..10;
TCritter = class(TItem)
protected
Richtung : TRichtung;
Geschwindigkeit : TGeschwindigkeit;
public
constructor Create; override;
procedure Init;
procedure Vor;
procedure RechtsDrehen;
procedure SetRichtung (r: TRichtung);
function GetRichtung: TRichtung;
procedure SetGeschwindigkeit (v : TGeschwindigkeit);
function GetGeschwindigkeit : TGeschwindigkeit;
function OffLimits : boolean;
private
procedure Step;
end;
(* -------------------- B e s c h r e i b u n g -------------------------
Oberklasse : TItem
Bezugsklassen : TFensterFrm - import Welt
Methoden
--------
Create
Auftrag: Exemplar erzeugen und init.
vorher : -
nachher: -
Init
Auftrag: Grundrissfarbe, Richtung setzen
vorher :
nachher: Grundrissfuellfarbe ist grau, Umrandung gelb, Richtung ist S,
Geschwindigkeit ist 1.
Set...
Auftrag: Attribut schreiben
vorher : -
nachher: Attribut ist gesetzt
Get...
Auftrag: Attribut aus dem Objekt lesen
vorher : -
nachher: -
Vor
Auftrag: einen Schritt in die aktuelle Richtung gehen
vorher :
nachher: auf folgendem Feld; in Welt sind alte Position abgemeldet und neue
Pos. angemeldet, wenn auf neuem Feld angekommen
War das Feld besetzt, ist das andere Item entfernt.
RechtsDrehen
Auftrag: Auf der aktuellen Position um 90 Grad nach rechts drehen
vorher : -
nachher: neue Richtung gesetzt
Offlimits
Auftrag: Prüfen, ob sich ein Item ausserhalb der Welt befindet
vorher : -
nachher: true, wenn ausserhalb der Feldgrenzen, Item ist entfernt. Signal
anzeigen.
--------------------------------------------------------------------- *)
|