TCG Deck mit Zufälliger Karten

  • GM 8

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

  • TCG Deck mit Zufälliger Karten

    Mit der SuFu hab ich nicht so recht das gefunden was ich finden wollte, oder nicht komplett.

    Es geht um folgende Dinge:

    Ich möchte in einer Array Variable (so heißen die dinger doch, oder?) Daten speichern.
    Undzwar so das:

    - Ich ein Deck aus 10 Karten bekomme
    - ich dieses verändern kann, wenn ich karten sammle
    - und dass immer zufällige karten in meiner hand sind.

    Das Spielfeld sieht so aus, dass oben zwei karten liegen (für gegner)
    und unten zwei (für sich selbst)
    und jeweils links und rechts eine. (ausrüstung rechts für sich selbst)(ausrüstung links für gegner)

    klickt man dann auf eine seiner karten, wird sie aufgedeckt, und es ist eine zufällige karte aus seinem deck.
    Dann deckt der gegner eine zufällige karte aus seinem Deck auf der oberen seite auf.
    hat mann keine Ausrüstungskarte, soll man (logischer weise) auch keine aufdecken können. (Der gegner hat aber fast immer eine)

    Hauptproblem also:
    - Wie speichere ich ein Deck mit 10 karten in einer Variable?
    - Wie lese ich karten aus diesen Variablen aus, und decke eine verdeckte karte auf dem spielfeld auf?
    - Wie wechsle ich die karten aus wenn ich neue gesammelt habe?
    - Wie erstelle ich eine Variable (z.b. einen koffer) in der die gesammelten karten landen?

    Hoffe ich belästige euch nicht mit meinen oft unnützlichen oder verständnislosen Fragen.
    Danke für eure Geduld! :thumbup:
    Kein Wesen ist an sich gut oder Böse, sein handeln macht es dazu.

    Wir brauchen hilfe! Du kannst helfen?
    Dann komm auf unseren Minecraft Server und hilf beim aufbau!

    forum.theguardiansofheaven.com/
  • Wie speichere ich ein Deck mit 10 karten in einer Variable?
    Naja prinzipiell würd ich das so lösen. Du hast ein Array (aus Zahlen) und jede Zahl ist eine eigene Karte. d.H. das die Zahl 0 für die Karte "blabla" steht. Und somit kannst du diese dann einlesen und auslesen. Ich arbeite zurzeit sehr wenig mit dem GameMaker also kann ich dir den Code jetzt nicht so aus den Kopf raussagen, da ich jetzt sehr viel mit C arbeite und dort alles anders ist und ich sofort an Classen denken würde xDD

    Wie lese ich karten aus diesen Variablen aus, und decke eine verdeckte karte auf dem spielfeld auf?
    Zu 1ersten Punkt. Du nimmst eine Variable die heißt, sagen wir mal, deck01.. diese Variable hat 10 Plätze..
    d.H.:
    deck01[0] = irgendeine Zahl (Die Zahl der Karte)
    deck01[1] = irgendeine Zahl (Die Zahl der Karte)
    deck01[2] = irgendeine Zahl (Die Zahl der Karte)
    ...
    ...
    deck01[8] = irgendeine Zahl (Die Zahl der Karte)
    deck01[9] = irgendeine Zahl (Die Zahl der Karte)

    nun komm ich gleich zu drei... Wenn du jetzt schreibst:
    deck01[3] = eine andere Zahl.. //so wird die Karte gewechselt..

    Der "Koffer" wäre in unserem Fall deck01.

    MfG Rodrog
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Rodrog ()

  • ds_list_create() Erstellt eine neue Liste. Die Funktion gibt eine ganze zahl als id wieder, welche fortan verwendet werden muss, um auf diese Liste zugreifen zu können.

    Den Satz hab ich gefunden in der Hilfe für den GM.
    Er würde rein theroetisch helfen oder? Zumindest die Liste würde helfen meine ich.

    Aber sie muss doch einen namen haben oder? Immer wenn ich einen namen zwischen die klammenr setze: ds_list_create(Deck_Spieler)
    dann gibt er mir unten die fehlermeldung: ERROR at line 1 pos 28: Wrong number of arguments to function or script

    ??? Wie behebe ich das?

    Wenn ich es jetzt so starte passiert das:


    ___________________________________________
    ERROR in
    action number 1
    of Create Event
    for object start_deck:

    Data structure with index does not exist.

    Was muss ich machen bzw. was mach ich falsch?
    Hoffe auf antwort!

    Edit:Funktioniert doch so wie du gesagt hast! Danke! :thumbsup:
    Kein Wesen ist an sich gut oder Böse, sein handeln macht es dazu.

    Wir brauchen hilfe! Du kannst helfen?
    Dann komm auf unseren Minecraft Server und hilf beim aufbau!

    forum.theguardiansofheaven.com/

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Der Fisch ()

  • hab mich mit diesen listen noch nicht wirklich auseinander gesetzt, aber...
    Erstellt eine neue Liste. Die Funktion gibt eine ganze zahl als id wieder, welche fortan verwendet werden muss, um auf diese Liste zugreifen zu können.

    Das heißt..
    Rune_A = ds_list_create();

    MfG Rodrog
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.
  • Doch noch ne kleine Frage: Kann ich auch einen zufälligen wert von hier auslesen? Wenn ja: Wie lautet der Code dafür?
    Kein Wesen ist an sich gut oder Böse, sein handeln macht es dazu.

    Wir brauchen hilfe! Du kannst helfen?
    Dann komm auf unseren Minecraft Server und hilf beim aufbau!

    forum.theguardiansofheaven.com/
  • Danke MasterXY! Ich liebe diese Community mit samt schlauen Köpfen in ihr! :D

    Edit: Doch noch ein Problem! ich will jetzt die leere karte (umgedrehte) in eine aus meinem Deck changen lassen. wenn ich jetzt dein Script verwende und es so auslesen lasse:

    GML-Quellcode

    1. instance_change = deck_1[round(random(9))]

    (deck_1) ist absicht weil es bei mir so heißt.

    dann gibt er folgendes problem aus:

    Unknown variable deck_1 or array index out of bounds

    mach ich was falsch? Wenn ja? Wie funktioniert es dann, das ich die karte in eine Zufällige andere karte in meinem Deck (deck_1) verwandle?
    Hoffe auf Antwort!
    Kein Wesen ist an sich gut oder Böse, sein handeln macht es dazu.

    Wir brauchen hilfe! Du kannst helfen?
    Dann komm auf unseren Minecraft Server und hilf beim aufbau!

    forum.theguardiansofheaven.com/

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Der Fisch ()

  • Du verwendest eine falsche Syntax: instance_change() wird folgendermaßen benutzt:

    GML-Quellcode

    1. instance_change(obj,perf);
    Wechselt die Instanz nach obj. Ob ein "creation/destroy event" ausgelöst wird, gibt perf an.

    Schau am Besten immer zu erst in die Hilfe und such ggf. nach entsprechenden Suchbegriffen. Das hilft oft schon.

    Gruß,
    Boskura

    ____
    Adventskalender 2010: Blue Smiley
  • Ich suche jetzt schon die ganze Zeit aber ich finde nichts. Was sol ich machen? Oder sag mir wonach ich suchen soll.
    Kein Wesen ist an sich gut oder Böse, sein handeln macht es dazu.

    Wir brauchen hilfe! Du kannst helfen?
    Dann komm auf unseren Minecraft Server und hilf beim aufbau!

    forum.theguardiansofheaven.com/
  • Hilfe! Ich brauche doch nur einen Code, mit dem ich eine zufällige Karte aus meinem Deck (das aus 10 karten besteht) platziere!

    Ich habe dort eine leere Karte. Wenn ich auf sie linsklicke, soll sie sich wie oben beschrieben in eine zufällige Karte aus meinem Deck verwandeln.
    Bitte bitte bitte ;(
    Kein Wesen ist an sich gut oder Böse, sein handeln macht es dazu.

    Wir brauchen hilfe! Du kannst helfen?
    Dann komm auf unseren Minecraft Server und hilf beim aufbau!

    forum.theguardiansofheaven.com/
  • Du kannst das auch so machen:

    Für jedes Deck ein separates Objekt.

    Create oder wo auch immer

    GML-Quellcode

    1. //Decks
    2. karte = 0;
    3. deck = 0;
    4. choose(instance_create(deck_1,x,y),instance_create(deck_2,x,y));
    5. if (deck == 1) //oder mit SWITCH
    6. {
    7. karte = round(random(9))
    8. }



    Draw

    GML-Quellcode

    1. if (karte == xxx)
    2. {
    3. //entsprechende Karte anzeigen
    4. }



    Das ganze hört sich für mich zu einfach an, sodass ich glaube, es wird nicht die Lösung sein. :D

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Michaelp800 ()

  • Der Fisch schrieb:

    GML-Quellcode

    1. instance_change = deck_1[round(random(9))]

    Boskura schrieb:


    Hilfe schrieb:


    GML-Quellcode

    1. instance_change(obj,perf);

    Zitat
    Wechselt die Instanz nach obj. Ob ein "creation/destroy event" ausgelöst wird, gibt perf an.

    Wenn, wovon ich jetzt einfach mal stark ausgehe, deck_1 die id der Karte beinhaltet, warst du doch schon auf den richtigen Weg. Boskura hat dir sogar noch netterweiße die Hilfestellung zur Funktion gegeben, an der du eigentlich leicht erkennen solltest was du falsch machst.

    GML-Quellcode

    1. instance_change(deck_1[round(random(9))],true); // bzw. false - je nachdem was du erreichen willst



    Mfg.,
    Mokuyobi
    木曜日 (Mokuyōbi)
  • Meine Variablen sehen jetzt so aus: (Weis nicht so recht was ID`s sind deswegen poste ich einfach mal meine Variablen)

    Folgendes wird zum start eines neuen spiels getan. (Das Deck wird produziert)(Deck_1 steht nur dafür dass es das erste von 3 decks ist die man bekommen kann.)

    GML-Quellcode

    1. global.Deck_1[0] = Karte_A
    2. global.Deck_1[1] = Karte_A
    3. global.Deck_1[2] = Karte_A
    4. global.Deck_1[3] = Karte_A
    5. global.Deck_1[4] = Karte_A
    6. global.Deck_1[5] = Karte_A
    7. global.Deck_1[6] = Karte_B
    8. global.Deck_1[7] = Karte_B
    9. global.Deck_1[8] = Karte_B
    10. global.Deck_1[9] = Karte_C


    Wenn man jetzt auf eine leere Karte (im Spiel direkt) Klickt wird das ausgeführt:

    GML-Quellcode

    1. instance_change (deck_1[round(random(9))], false)


    Klar ich weiß das es falsch ist.
    Aber ich weiß nicht (so wie sich das oben angehört hat) ob ich diese Codes auch so benutzen kann. (Leider weiß ich ja auch nicht was IDs sind. Sorry)
    Kein Wesen ist an sich gut oder Böse, sein handeln macht es dazu.

    Wir brauchen hilfe! Du kannst helfen?
    Dann komm auf unseren Minecraft Server und hilf beim aufbau!

    forum.theguardiansofheaven.com/
  • das funktioniert nur, wenn du wirklich die instanzen in die Arrays speicherst. Und noch ein kleiner Tipp: Du ersparst dir das Deck_1 wenn du dein Array zweidimensional machst:
    deck[0,0], deck [0,1] usw. In diesem Fall steht die erste Zahl für das Deck und die zweite für die Karte. ;)

    © 2008 by Teamgrill Productions
  • MasterXY schrieb:

    das funktioniert nur, wenn du wirklich die instanzen in die Arrays speicherst.

    Wie geht das denn? Die Instanzen sind doch Objekte oder?
    Hab ich die nicht schon eingespeichert?
    Kein Wesen ist an sich gut oder Böse, sein handeln macht es dazu.

    Wir brauchen hilfe! Du kannst helfen?
    Dann komm auf unseren Minecraft Server und hilf beim aufbau!

    forum.theguardiansofheaven.com/
  • Karte_A, Karte_B sind bei dir Variablen? oder Instanzen bzw Objekte? Wenn zweites zutrifft, müsste es eigentlich funktionieren, vorausgesetzt du führst es im richtigen (oder für das richtige) Objekt aus, nämlich in dem, das du ändern willst.

    © 2008 by Teamgrill Productions
  • Ja, zweiteres trifft zu, und es funktioniert nicht, denn...

    Der Fisch schrieb:

    dann gibt er folgendes problem aus:



    Unknown variable deck_1 or array index out of bounds
    Kein Wesen ist an sich gut oder Böse, sein handeln macht es dazu.

    Wir brauchen hilfe! Du kannst helfen?
    Dann komm auf unseren Minecraft Server und hilf beim aufbau!

    forum.theguardiansofheaven.com/
  • Das heißt er erkennt die Variable bzw das Array nicht. Stell sicher, dass es - nachdem du es beim definieren global.Deck_1 genannt hast - bei der Zuweisung gleich heißt. Du hast ja nur deck_1 stehen.

    © 2008 by Teamgrill Productions
  • habs geändert, geht trotzdem nicht. Er zeigt immernoch das an:


    ___________________________________________
    ERROR in
    action number 1
    of Mouse Event for Left Button
    for object Leere karte (Spieler):

    Error in code at line 1:
    instance_change (global.deck_1[round(random(9))], false)
    ^
    at position 25: Unknown variable deck_1 or array index out of bounds

    EDIT:

    Die Variablen wurden auch vorher 100% schon erstellt.
    Kein Wesen ist an sich gut oder Böse, sein handeln macht es dazu.

    Wir brauchen hilfe! Du kannst helfen?
    Dann komm auf unseren Minecraft Server und hilf beim aufbau!

    forum.theguardiansofheaven.com/