Brauche Hilfe von Profis (Kartenspiel)

Previous topic - Next topic

Joergpaul

Hallo
Erst einmal: Nachdem ich die ersten Gehversuche mit GLB hinter mir habe, und ich die erste Phase von meinem 17*4-Spiel gemeistert habe, möchte ich Gernot und seinen Mitstreitern ein dickes Lob für das Programm aussprechen. Ich denke, dass ich demnächst die Vollversion kaufe  ;)

Nun zu meinem Anliegen: Nachdem ich die ersten vier Spielkarten erfolgreich auf dem Spieltisch liegen  habe, und alles so ist wie ich es haben will, habe ich ein tiefes Gedankenloch... Mir fehlen jetzt die Zuordnungen der Karten (geladene Sprites 1 bis 52, sind auch die gezogenen Zufallszahlen) zu den eigentlichen Augenzahlen der Karten. Ohne die kann ich natürlich nicht die Augen (Punkte) der Spieler addieren, um die Gesamtberechnung zu machen. Vielleicht hat einer der Profis von Euch eine Idee bzw. Tipp, wie ich das realisieren oder ihr das schon gemacht habt. Ich komme im Moment einfach nicht weiter, und würde mich riesig über einen Gedankenansatz freuen!!!!!

(Hier wollte ich mal einen Screenshot einfügen, geht irgendwie nicht, schade) )

ich hoffe, ich habe mich so ausgedrückt, dass ihr versteht, was ich meine. Für Eure Hilfe bedanke ich mich schon jetzt ganz herzlich, und wünsche Euch ein schönes Wochenende  :good:
LG aus Berlin Jörg

Kitty Hello

mach ein Feld in dem Du für jede Karte die Punkte reinschreibst:

Code (glbasic) Select

LOCAL score%[]
DIMDATA score%[], 6,7,8,9,10,...

Punkte% = score%[karte1%] + score%[karte2%] ..

kanonet

Alternativ etwas Mathematik:
Du hast 52 Karten. In 4 Farben. Das sind 13 Karten pro Farbe. Wenn es dir gelingt die den Index auf 1-13 zu beschränken, dann kennst du also den Wert der Karte (bzw. kannst ihn übertragen). Problematisch ist hier, dass der Computer üblicherweise anfängt bei Null zu zählen und nicht bei eins wie du, tatsächlich hast du also 53 Karten angelegt (0..52). Wenn du dich entschließt mit der Null (sprite ids 0..51) zu beginnen wird die Aufgabe mathematisch einfacher zu lösen. Dann wäre:
Kartenrang = MOD( spriteid, 13)
Kartenfarbe = spriteid / 13    // Achtung, muss Integeroperation sein, also sollte dein spritid (oder wie die Variable bei dir heißt) ein integer sein

Um von den Kartenrang (0..12) auf die tatsächliche Wertigkeit der Karte zu kommen kannst du dann entweder die abgespeckte Version von Kittys Lösung verwenden oder eine kurze IF-ELSEIF-...-ENDIF Verzweigung. Zugegebenermaßen ist Kittys Lösung einfacher für einen Anfänger, aber meine ist eleganter (und Speicher schonender) und zeigt dir vielleicht ein paar für dich neue Ansätze und du willst ja sicher was lernen. ;)
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

Joergpaul

Danke Euch Beiden ganz herzlich  :good: Ja, beides prima Ansätze... LG aus Berlin Jörg