AGB  ·  Datenschutz  ·  Impressum  







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

Spielkarten einbinden

Ein Thema von Drazzwe · begonnen am 17. Dez 2010 · letzter Beitrag vom 17. Dez 2010
Antwort Antwort
Drazzwe

Registriert seit: 16. Dez 2010
1 Beiträge
 
#1

Spielkarten einbinden

  Alt 17. Dez 2010, 02:12
Hiho liebe community.

ich stehe vor folgendem problem. ich bin gerade dabei ein kartenspiel zu programmieren und komme nicht aus den startlöchern, da ich es leider nicht schaffe die karten einzubinden (grundwissen ist vorhanden). ich habe natürlich auch schon den freund und helfer google benutzt und konnte leider keinen lösung finden die auf mein problem zutreffen bzw habe das nicht verstanden/konnte es nicht nachvollziehen.

die grafische oberfläche steht soweit die ersten onclick funktionen sind auch schon vorhanden,sprich ich habe alles drumherum erstellt. nun komme ich nicht weiter weil mir die karten fehlen.

so nun zu meiner frage wie kann ich ein kartenspiel einbinden bzw wie mache ich das.

jeder karte soll auch ein bmp zugeteilt werden.

ich weis das ich nen kartenwert brauche für die wertigkeit der karte und ich muss die farbebestimmen.
die karte muss auch festgelegt sein damit ich die bmp zuweisen kann.

ich habe schon einige lösungsvorschlöge gesehen nur nicht verstanden(zb mit einem constructor) nur sehe ich atm das prob das die karten generiert werden und somit die bmp zuteilung in meinen augen nicht ganz möglich ist.

type
TKarten = class (TObject)
private
Kartenwert: integer;
Kartenfarbe: integer;
Kartenmotiv: Tbitmap;
public
end;
das sind meine ersten ansätze. die werte der karte sollen ja nicht änderbar sein und habe sie somit privatiesiert.

mfg drazzwe
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Spielkarten einbinden

  Alt 17. Dez 2010, 02:34
Hier mal mein Idee: lass erst mal die Integer da weg und nutze Enumerations! Zudem wurde ich dann eine EnumToString Funktion einbauen und passenden dann die BMP-Dateien benennen:

Delphi-Quellcode:
uses
  {...} TypeInfo {...};
type
  TKartenwert = (kwBube, kwDame, kwKoenig); // natürlich zu verfollständigen, so wie alles weitere
  TKartenfarbe = (kfEichel, kfLaub {...});

  TKarte = class(TObject)
  private
    FKartenwert: TKartenwert;
    FKartenfarbe: TKartenfarbe;
    FKartenmotiv: TBitmap;
    procedure LoadKartenmotiv();
  public
    constructor Create(AKartenwert: TKartenwert; AKartenfarbe: TKartenfarbe);
end;

function KartenwertToString(AKartenwert: TKartenwert): String;
function KartenfarbeToString(AKartenfarbe: TKartenfarbe): String;


implementation

procedure TKarte.LoadKartenmotiv();
var
  Filename : String;
begin
  Filename := KartenwertToString(FKartenwert) + '_' + KartenfarbeToString(FKartenfarbe) + '.bmp';
  if (not FileExists(Filename)) then
    raise Exception...
  if (Assigned(FBitmap)) then
    FreeAndNil(FBitmap);
  FBitmap := TBitmap.Create();
  FBitmap.LoadFromFile(Filename);
end;

constructor TKarte.Create(AKartenwert: TKartenwert; AKartenfarbe: TKartenfarbe);
begin
  inherited Create();

  FKartenwert := AKartenwert;
  FKartenfarbe := AKartenfarbe;
  
  LoadKartenmotiv();
end;

// hier wende ich einen kleinen Trick an, da ich faul bin :mrgreen:
// daher muss TypInfo in die uses Liste!

function KartenwertToString(AKartenwert: TKartenwert): String;
begin
  Result := Delete(GetEnumName(TypeInfo(TKartenwert), Integer(AKartenwert)), 1, 2)
end;

function KartenfarbeToString(AKartenfarbe: TKartenfarbe): String;
begin
  Result := Delete(GetEnumName(TypeInfo(TKartenfarbe), Integer(AKartenfarbe)), 1, 2)
end;
Wurde jetzt irgendwie mehr als ich schreiben wollte
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Spielkarten einbinden

  Alt 17. Dez 2010, 08:26
Ich wäre wahrscheinlich noch fauler und würde eine Imagelist verwenden und den Kartenwert als Index verwenden.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Spielkarten einbinden

  Alt 17. Dez 2010, 10:04
Ich wäre wahrscheinlich noch fauler und würde eine Imagelist verwenden und den Kartenwert als Index verwenden.
Wenn, dann muss man den Kartenwert mit der Kartenfarbe verknüpfen, um das Ergebnis als Index nutzen zu können. Denn die Farbe spielt da ja auch eine Rolle
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.623 Beiträge
 
Delphi 12 Athens
 
#5

AW: Spielkarten einbinden

  Alt 17. Dez 2010, 10:19
Wie wäre es denn mit einer Klasse/einem Record TCard, in der/dem die Farbe, der Wert und der Index abgelegt wird?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz