AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kartenspiel

Ein Thema von Stillmatic · begonnen am 20. Mai 2007 · letzter Beitrag vom 23. Mai 2007
 
Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Kartenspiel

  Alt 20. Mai 2007, 23:55
Also das sieht mir etwas umständlich aus

Ich habe meins gefunden:

So ich habe noch was gefunden:

Ich habe eine Klasse TKarte die so aussieht (für deine Zwecke angepasst):

Delphi-Quellcode:
type
  TKartenWert = 1..13; // 1 = AS, 11 = Bube, 12 = Dame, 13 = König
  TKartenFarbe = (kfKaro, kfHerz, kfPik, kfKreuz);
  TKartenPosition = 1..8;

TKarte = class(TObject)
    private
      FWert: TKartenWert;
      FFarbe: TKartenFarbe;
      FPosition: TKartenPosition;
      FUsedBool: Boolean;
    public
      constructor Create(Wert : TKartenWert;Farbe : TKartenFarbe;Position : TKartenPosition);
      property Wert: TKartenWert read FWert write FWert;
      property Farbe: TKartenFarbe read FFarbe write FFarbe;
      property Position: TKartenPosition read FPosition write FPosition;
      property UsedBool: Boolean read FUsedBool write FUsedBool;
    end;
Der cunstructor:
Delphi-Quellcode:
constructor TKarte.create(Wert : TKartenWert;Farbe : TKartenFarbe;Position : TKartenPosition);
begin
  inherited create;
  FWert := Wert;
  FPosition := Position;
  FFarbe := Farbe;
  FUsedBool := UsedBool;
end;
Das sind im Grunde meine Karten. Dann habe ich eine Funktion zum Ziehen für die Farbe jeder Karte.

Die Kartenfarbe:
Delphi-Quellcode:
function drawKartenFarbe(RFarbe : integer):TKartenFarbe;
begin
  case RFarbe of
    1 : result := kfKaro;
    2 : result := kfHerz;
    3 : result := kfPik;
    4 : result := kfKreuz;
  end;
end;
Dann ziehe ich die Karten und prüfe auf doppelte, wenn doppelte vorhanden sind ziehe ich nochmal, bis es keine doppelten Karten gibt. Die Karten stecke ich in ein Array von TKarte (Karten ziehen):
Delphi-Quellcode:
for a := 1 to 8 do
    begin
      ABlatt[a]:=TKarte.Create((random(13)+1),drawKartenFarbe((random(4)+1)),a); //(random(13)+1) = KartenWert!
    end;
mfg zecke
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz