Gleiche Karten zählen

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Gleiche Karten zählen

    Hallo Community,
    ich hoffe mal einer von euch ist schlauer als ich und erklärt sich bereit mir netter Weise helfen. :)

    Zunächst muss ich erklären bei was mein Problem auftritt und was mein Problem ist. Ich arbeite derzeit an einem Karten Spiel, was sich für meine Verhältnisse als nicht leicht herausstellt. In diesem Kartenspiel möchte ich die eigenen Karten so anzeigen, jede Karte eines Symbols (Ass,König,Dame;Bube, 1-10) hat einen Platz auf dem Bildschirm, sollte sich keine Karte eines bestimmten Symbols auf dem Bildschirm befinden, ist der Platz leer, sollten sich mehrere Karten eines Symbols auf deiner Hand befinden soll unten an der Karte angezeigt werden, wie viele Karten dieses Symbols auf deiner Hand sind. Und das ist mein Problem. Ich kriege das letzte nicht hin. :D

    Wenns hilft, jede Karte hat einen "di"-Wert, der ihr zeigt welcher Karten Typ sie ist, der "di"-Wert ist ein String, der anfängt mit dem Kartensymbol k=kreuz,c=karo,h=herz,p=piek und dann das symbol, wobei ass 1,bube 11, dame 12 und könig 13. Ein "di"-Wert wäre k_1, kreuz ass.

    Außerdem gibt es 4 ds_lists, in der mit dem "di"-Wert festgehalten wird welche Karte sich wo befindet. Entweder ds_Hand, auf der eigenen Hand, ds_bot_one, auf der Hand des ersten Gegners, ds_bot_two, auf der Hand des zweiten Gegners, oder deck_list, auf dem Stapel.


    Wäre nett wenn mir jemand weiterhelfen könnte :)


    Hier wäre mein Code :)

    GML-Quellcode

    1. var size2
    2. var size
    3. for(size2=ds_list_size(global.Hand)-1;size2>0;size2-=1)
    4. {
    5. if real(string_digits(ds_list_find_value(global.Hand,size2)))==1||real(string_digits(ds_list_find_value(global.Hand,size2)))==11||real(string_digits(ds_list_find_value(global.Hand,size2)))==12||real(string_digits(ds_list_find_value(global.Hand,size2)))==13
    6. {cards_possible[0]+=1
    7. cards_possible[real(string_digits(ds_list_find_value(global.Hand,size2)))]=true}
    8. for(size=ds_list_size(global.Hand)-1;size>0;size-=1)
    9. {
    10. if real(string_digits(ds_list_find_value(global.Hand,size2)))==real(string_digits(ds_list_find_value(global.Hand,size)))
    11. doubles[real(string_digits(ds_list_find_value(global.Hand,size)))]+=1
    12. }
    13. }
    14. if doubles[real(string_digits(ds_list_find_value(global.Hand,size)))]==3
    15. {
    16. cards_possible[0]+=1
    17. cards_possible[real(string_digits(ds_list_find_value(global.Hand,size)))]=true
    18. }
    Alles anzeigen

    (Da ist noch was anderes drin, was zeigen soll welche Karten man benutzten kann. Hoffe der Code ist nicht zu schlecht >.<. Aber bei meinem Code, wird jede Zahl dann pro Frame immer um eins erhöht. )

    Ich bedanke mich schon mal im vorraus, aber wahrscheinlich auch später nochmal, sollte sich jemand bereit erklären mir netterweise zu helfen. Und ich hoffe ich habe genügend Informationen hinzugefügt, bei Fragen zum Verständnis helfe ich gerne weiter :)

    PS: Ich besitze Game Maker:Studio
  • Hey,
    ich verstehe zwar deinen Code nicht, liegt wahrscheinlich an mir, aber du könntest doch einfach die Karte mit der ds_list abrufen, wo sie sich befindet und diesen Wert in der Variable hinzufügen, mit der angezeit wird, wieviele Karten du in der Hand hältst.
    Husi012 hat mich nicht mehr in seiner Signatur, ich bin trotzdem noch fame.