Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

31.10.2013, 16:17

Hilfe bei komplexem Kartenspiel (Datenstrukturen) - 7 Wonders (C#/XNA)

Hallo,
Ich wollte mich an dem "Kartenspiel" 7 Wonders versuchen, für einen erweiterten Einstieg in die Spiele Programmierung, nachdem ich sehr einfach gestrickte Kartenspiele (Solitär, Mau-Mau) schon gemacht habe.
Ich programmiere mit C# und für die grafik XNA(spielt hier eher keine Rolle)

Mein Hauptproblem hierbei ist die Verwaltung der Karten, bzw deren Datenstrukturen. Bei den "standard" Kartenspiele nehme ich eine Klasse 'card', welche zb. Farbe, Wert, etc speichert, diese kann in eine Klasse Deck gezogen werden, von da aus auf die Hand des Spielers, auf den Tisch, usw...
Allerdings finde ich keine Möglichkeit das auf 7 Wonders anzuwenden weil einfach jede Karte unterschiedlich ist und andere Funktionen hat: es gibt Rohstoffkarten (Holz, Eisen, Holz&Eisen, etc), Kriegerkarten, Punktekarten, usw..
Viele Karten haben Kosten von Rohstoffen bevor sie gespielt werden können. (Eine Übersicht aller Karten in der Spieleanleitung oben im link).
Die verfügbaren Rohstoffe kann ich in der Player Klasse speichern, aber viel weiter komme ich nicht.

Also um es zusammen zu fassen: Ich suche eine geeignete Möglichkeit eine Karte zu speichern, denn genau da ist das Problem, denn hier sehe ich keine Zukunft, da ich nicht wüsste wie ich die ganzen Kartentypen ansprechen könnte bzw deren Extra funktionen. Wären alles nur Rohstoffkarten würde ich auf den Rohstoff gucken (zb Variable ResType in der Klasse und den Value zum Spieler hinzufügen), dann Krieg und direkte Punkte, auch kein Problem. Aber wenn es um extra funktionen geht hört es auf. Um genau zu sein hört es schon auf, wenn ich zb eine Karte erstellen müsste, welche mir 2 verschiedene Rohstoffe auf einmal gibt.

Jeder neue Ansatz ist willkommen =)
mfg

Jetziger Ansatz, ähnlich zu normalen Kartendecks (deadend?):

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Card
    {
        public enum CardType
        {
            Brown = 1,
            Grey,
            Yellow,
            Blue,
            Purple,
            Red,
            Green
        }

        public int CardAge { get; set; }
        public string CardName { get; set; }
        public ? CardCost ???
    }