unit zahlen;
interface
type
TMeineZahlen =
array[0..2]
of Integer;
IZahlen =
interface(IInterface)
['
{EAA23356-FA98-49A6-B3D3-62362FF46485}']
procedure set_ComputerZahlen;
procedure set_SpielerZahl(
const Value: TMeineZahlen);
property SpielerZahl: TMeineZahlen
write set_SpielerZahl;
function vergleichen:
string;
function get_Punkte(
const Punkte: Integer): Integer;
function get_HolePunkte: Integer;
property HolePunkte: Integer
read get_HolePunkte;
end;
TBackupClassesFactory =
class(TObject)
public
class function Zahlen: IZahlen;
end;
implementation
type
TZahlen =
class(TInterfacedObject, IZahlen)
private
FComputerZahl1, FComputerZahl2, FComputerZahl3, FSpielerZahl1,
FSpielerZahl2, FSpielerZahl3: Integer;
FHolePunkte: Integer;
FPunkte, Fpunkte2: Integer;
procedure set_ComputerZahlen;
protected
function get_HolePunkte: Integer;
function get_Punkte(
const Punkte: Integer): Integer;
procedure set_SpielerZahl(
const Value: TMeineZahlen);
function vergleichen:
string;
property HolePunkte: Integer
read get_HolePunkte;
property SpielerZahl: TMeineZahlen
write set_SpielerZahl;
end;
procedure TZahlen.set_ComputerZahlen;
begin
randomize;
FComputerZahl1 := 1;
//random(6);
FComputerZahl2 := random(6);
FComputerZahl3 := random(6);
end;
procedure TZahlen.set_SpielerZahl(
const Value: TMeineZahlen);
begin
FSpielerZahl1 := Value[0];
FSpielerZahl2 := Value[1];
FSpielerZahl3 := Value[2];
end;
function TZahlen.vergleichen:
string;
var
punkte: integer;
begin
if FSpielerZahl1 = FComputerZahl1
then
begin
FPunkte := FPunkte + 1;
Result := '
Sie haben gewonnen!';
end
else
Result := '
Sie haben verloren';
// TODO -cMM: TZahlen.vergleichen default body inserted
end;
function TZahlen.get_Punkte(
const Punkte: Integer): Integer;
begin
FPunkte := FPunkte + Punkte;
end;
function TZahlen.get_HolePunkte: Integer;
begin
Result := FPunkte;
end;
class function TBackupClassesFactory.Zahlen: IZahlen;
begin
Result := TZahlen.Create;
end;
end.