Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: Schulprojekt: Spiel "Domino" programmieren!

  Alt 27. Jan 2010, 15:57
Grundlagen kann man sich aneignen. Ein Entwurf mit Objekten ist einfacher als mit Records und Pointern zu arbeiten. Auf jeden Fall sollte man das ganze Spiel erst einmal funktionstüchtig entwerfen, bevor man sich mit der Darstellung beschäftigt. Sonst bekommt man ganz schnell Probleme.

Die Spielklasse sollte z.B. mit Datenobjekten jede Spielsituation darstellen können (nicht zu verwechseln mit Bildschirmanzeige).
Jede Änderung der Spielsituation sollte über geeignete Methoden erfolgen.

Mal so ein kleiner Entwurf:
Delphi-Quellcode:
TStein = class
  constructor Create(AZahl1, AZahl2: Integer);
private
  FZahl1: Integer;
  FZahl2: Integer;
public
  property Zahl1: Integer read FZahl1;
  property Zahl2: Integer read FZahl2;
end;

TSpieler = class
  constructor Create(AName: string);
private
  FName: string;
  FSteine: TList; {TStein - alle Steine die der Spieler in der Hand hält}
public
  property Name: string read FName;
  property Steine: TList read FSteine;
end;

TSteinPos = class
  constructor Create(AStein: TStein; APos: TRect);
private
  FStein: TStein;
  FPos: TRect;
public
  property Stein: TStein read FStein;
  property Pos: TRect read FPos;
end;

TDomino = class
  constructor Create();
private
  FSteine: TObjectList; {enthält TStein - alle Steine die im Spiel vorkommen}
  FStapel: TList; {enthält TStein - alle Steine gemischt, die auf dem Stapel zum Ziehen liegen}
  FSpieler: TObjectList; {enthält TSpieler - alle am Spiel beteiligten Spieler}
  FReihe: TObjectList; {enthält TSteinPos - alle gesetzten Steine mit Pos}
  FAmZug: TSpieler; {Spieler der aktuell am Zug ist}
public
  property Reihe: TObjectList read FReihe;
  property Spieler: TObjectList read FSpieler;
  property AmZug: TSpieler read FAmZug;
  procedure Spielstarten;
  function Zug(AStein: TStein; APos: TRect): Boolean;
end;
  Mit Zitat antworten Zitat