Seite 1 von 1

Kartenspiel c++

Verfasst: Mi Mär 07, 2018 11:07 pm
von Wissenslücke
hey,

ich möchte ein sammelkartenspiel programmieren ( mit deck, friedhof . ..).

die entsprechende karte ist über die position im entsprechende array( deck, hand, friedhof, board . . .) verfügbar. die anzahl im array kann nun variieren, weshalb ich zb das array deck mit 100elementen deklariere, auch wenn man mit vllt 40 karten startet. die offenen slots haben das selbe obkjekt "open" einer klasse "card".
wenn ich nun eine karte ziehen möchte zähle ich vom deck[99] runter bis ich eine karte hab.

meine frage ist nun ob das so optimal ist oder ob man es nicht vllt anders machen sollte

2.frage: wie realisiert man eine mischung der karten ?

ich hoffe es kann mir jemand helfen

gruß

Re: Kartenspiel c++

Verfasst: Fr Mär 09, 2018 8:48 pm
von Wissenslücke
ok ich hatte mit verketteten listen noch nichts gemacht aber ich denke das wird im überwiegenden teil die bessere lösung sein.
für die mischung der karten hab ich auch eine methode gefunden.

meine frage kann also gelöscht werden.

gruß

Re: Kartenspiel c++

Verfasst: So Mär 11, 2018 5:44 pm
von nufan
Hallo Wissenslücke!

Dieses Thema ist leider etwas untergegangen.
Wissenslücke hat geschrieben:meine frage ist nun ob das so optimal ist oder ob man es nicht vllt anders machen sollte
Wie du richtig erkannt hast, ist eine verkettete Liste ein guter Ansatz für dieses Problem.
Eine detaillierte Beschreibung dazu findest du im Wiki: https://www.proggen.org/doku.php?id=struct:list:start
C++ bietet dafür auch fertige Container an: http://en.cppreference.com/w/cpp/container/list
Wissenslücke hat geschrieben:2.frage: wie realisiert man eine mischung der karten ?
Eine Möglichkeit wäre für jede Karte eine Zufallszahl zu generieren. Diese Zufallszahl hat einen Wert von mindestens 0 und ist kleiner als die Anzahl der Karten im Stapel. Nun vertauscht du jede Karte mit der Karte an der Position mit dem zufällig generierten Index. Dies ist natürlich nur eine recht einfache Idee von mir, ein auf Zufallszahlen basierender Ansatz ist jedoch empfehlenswert.

Re: Kartenspiel c++

Verfasst: Mo Mär 26, 2018 8:24 pm
von Wissenslücke
danke für die antwort nufan. ich frage mich ob ich nicht doch lieber mit arrays arbeiten soll wegen der performance. die methode mit arrays frisst zwar speicherplatz aber bei nem 2d plattformspiel ist das eventuell zu vernachlässigen. was meint ihr ?

gruß

Re: Kartenspiel c++

Verfasst: Mo Mär 26, 2018 10:06 pm
von nufan
Nachdem du mit deinem Spiel wohl weder an die Speicher- noch an die CPU-Geschwindigkeits-Grenze eines modernen Computers stoßen wirst, liegt diese Entscheidung ganz bei dir. Wenn du Zeit hast, implementiere beides und vergleiche. Welche Version ist zur Laufzeit schneller? Welche benötigt mehr Speicher? Welche erfordert mehr/komplexeren Code? Als Übung könntest du das ganze auch generisch umsetzen und den Benutzer wählen lassen - entweder zur Laufzeit oder beim Kompilieren.

Re: Kartenspiel c++

Verfasst: Di Mär 27, 2018 10:56 pm
von Wissenslücke
das werd ich machen vielen dank nufan ;)