[C#] Methoden Verkettung

qixx

Mitglied
Hallo Leute,

ich hoffe, dass ich im richtigen Forum bin und die Überschrift richtig ist.
Folgendes:

Ich möchte ein Kartenspiel programmieren. Dort möchte ich Methoden aufrufen in folgendem Muster:

Code:
int wert = Karte.Kartenname.Kartenwert;

Wie kann ich das bewerkstelligen, dass ich imprinzip mehrere Methoden nacheinander aufrufe?

Ich hoffe, ihr versteht, was ich meine. Vielleicht habe ich mich auch komplett falsch ausgedrückt, da ich relativ neu in C# bin.

- Oder gibt es vielleicht eine bessere Lösung?

Ich danke im voraus!


MfG
qixx
 
Hi

was soll denn die Methode machen bzw. was soll am Schluss im int wert drin sein?

Eventuell wäre ein 2dim-Array besser, eventuell...
 
Hi,

also in dem oben genannten Beispiel sollte der Wert der Karte (z.B. der Kaufwert) zurückgegeben werden.
Es soll dann aber auch Aufrufe geben, die z.B. die Angriffskraft, Verteidigung, etc. zurückgeben oder einen Effekt durchführen (Aufruf anderer Methoden).

Code:
int atk = Karte.Kartenname.Angriffskraft;
int wert = Karte.Kartenname.Verteidigung;
Karte.Kartenname.EffektAusfuehren();

MfG
qixx
 
Sorry, aber aus dem werd ich nicht ganz schlau...vllt. ist es einfach schon zu spät.

Warum Karte.Kartenname?

...
Was wird denn das für ein Spiel (wegen den Regeln)?
Gibt es eine Karte nur einmal, oder mehrere gleiche?
(Dann ist das ein typischer Klasse/Instanz-Fehler)
Gibt es ein paar fixe Kartennamen und fertig oder können die sich ändern?
...?
 
Also es handelt sich um das Spiel Dominion. Ich möchte es in eine PC-Version umsetzen.
Jede Karte gibt es mehrfach. Man kann/muss sich immer Karten kaufen.

Beispiel:
http://www.dominionblog.de/wp-content/uploads/2009/06/Dorf2.png (Karte)
Kosten: 3
Nutzen: + 1 Karte, + 2 Aktionen
Kartentyp: Aktion

Was ich machen will:
Code:
int kosten = Karte.Dorf.Kosten;
Karte.Dorf.Nutzen();
string typ = Karte.Dorf.Kartentyp;

Also ich möchte einmal Werte bekommen und Methoden ausführen.


Vielleicht denke ich auch ganz falsch...


MfG
qixx
 
Hi.

Also im Prinzip kannst du das mit (static) Properties machen: http://msdn.microsoft.com/en-us/library/aa288470(v=vs.71).aspx

Dann müßtest du aber für jede Kategorie von Karten eine eigene Klasse schreiben. Ich weiß nicht ob das so sinnvoll ist...

Letztlich ist doch jede bestimmte Karte eine Instanz der Klasse "Karte". Du hast eine Instanz Karte(Titel: Dorf, Kosten: 3, Nutzen: +1K, +2A, Typ: Aktion) usw.

Ich kenne das Spiel nicht, evtl. würde es ja Sinn machen die Klasse Karte als abstract zu deklarieren und dann Subklassen Aktionskarte, Ereigniskarte, Geldkarte usw. zu machen?

Gruß
 
Danke für eure Hilfe!

Ich habe mich jetzt aber anders entschieden. Ich baue jetzt alles mit einer Datenbank. Das geht viel einfacher. Dass ich da nicht schon früher drauf gekommen bin...^^


MfG
qixx
 
Zurück