Einzelnen Beitrag anzeigen

Schnittcher

Registriert seit: 25. Aug 2009
Ort: Blomberg
120 Beiträge
 
#1

Punkte bei Spiel gehen immer auf 0 zurück

  Alt 9. Sep 2009, 10:06
Hallo,

kann mir jemand sagen wieso ich hier immer nur einen Punkt bekomme?

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, zahlen;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    edZahl1: TEdit;
    edZahl2: TEdit;
    edZahl3: TEdit;
    Button1: TButton;
    lbPunkte: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    FPunkte: integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Zahlen: IZahlen;
  SpielerZahlen: TMeineZahlen;
begin
  SpielerZahlen[0] := StrToInt(edZahl1.Text);
  SpielerZahlen[1] := StrToInt(edZahl2.Text);
  SpielerZahlen[2] := StrToInt(edZahl3.Text);
  Zahlen := TBackupClassesFactory.Zahlen;
  Zahlen.SpielerZahl := SpielerZahlen;
  Zahlen.set_ComputerZahlen;
  FPunkte:= Zahlen.HolePunkte;
  Zahlen.vergleichen;
  Zahlen.get_Punkte(FPunkte);
  lbPunkte.Caption:= IntToStr(Zahlen.HolePunkte);
end;
end.
Delphi-Quellcode:
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.
Gruß,
Schnittcher
  Mit Zitat antworten Zitat