Objekt auf Position

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

  • für brettspiele bieten sich immer arrays an.
    ertselle ein array, in dem für jede position auf dem brett ein wert vorhanden ist, und dieser speichert dann die anzahl an objekten, die sich dort befinden. du musst nur am anfang alle diese werte auf 0 setzen, und dafür sorgen, dass die objekte, wenn sie von einer position zu nächsten wechseln, den wert ihrer ursprünglichen position um 1 erniedrigen, und den der zielposition um 1 erhöhen. dann kannst du jederzeit den array fragen, wie viele objekte sich wo befinden.

    da du nich gesagt hast, um was für ein brettspiel es sich handelt, kann ich leider keine praktischen beispiel nennen.
  • 1.Ich weis nicht ob ihr das kennt, aber das Spiel heist "Zug um Zug". Da muss man Strecken mit gesammelten Karten kaufen um eine Verbindung zwischen 2 Städten herzustellen.

    Ich will jetzt eine Flugzeugversion in Europa machen.
    Hier ein Pic:
    spiel-und-autor.de/Spielbesprechungen/Zug%20Um%20Zug.jpg

    2. Ich hab nachgeschaut, aber nicht gefunden: Was ist ein ARRAY? Oder wo steht eine Erklärung davon?
    Dont think! Be!
  • hm... tut mir leid, aber das spiel kenn ich nicht, und ich kann mit dem bild auch nix anfangen.

    aber arrays sind zahlenfelder. in der hilfe des gm findest du einen (kleinen) eintrag in der registerkarte hilfe, dem buch "the game maker language (gml)", dem unterbuch "gml language overview" und dort beim eintrag arrays.
    wie gesagt: sehr kurz, deshabl hier nochmal das, was ich dazu zu sagen hab:

    der aufbau ist immer so:

    GML-Quellcode

    1. <arrayname>[<die parameter, getrennt durch kommata>]

    die parameter sind in diesem fall immer ganze zahlen, und beschreiben immer die position eines wertes. du kannst dir also arrays als sammlung von variablen unter dem gleichen namen vorstellen, welche meist mit einem bestimmten system verbunden sind (z.b. als variable, die die werte einer tabelle abspeichert.)

    beispiele:

    GML-Quellcode

    1. //ein 1-dimensionales array
    2. array1[x]
    3. /* dies musst dur dir als kette von zahlen vorstellen, wobei x die position angibt.
    4. d.h. die kette könnte so aussehen:
    5. 1 2 3 4 5 6 7, dann wäre für x=1 der wert auch 1 (halt die erste position.
    6. sie könnte abr auch so aussehen:
    7. 5 7 13 1 121 0 -6, dann wäre für x=1 der wert 5. die werte stehen also untereinander in keinem zusammenhang. */
    8. //ein 2-dimensionales array
    9. array2[x,y]
    10. /* dies stellst du dir am besten wie ein koordinatensystem vor, bei denen die
    11. achsen nur mit natürlichen (positiv und ohne komma) zahen eingeteilt werden.
    12. an jedem punkt befindet sich dann ein wert, so wie in einer tabelle.
    13. wieder stehen die werte untereinander in keiner beziehung. und wie in der
    14. mathematik macht es auch hier einen unterschied, in welcher reihenfolge die
    15. parameter stehen. so ist array2[1,2] meinetwegen = 5, und array2[2,1] zum
    16. beispiel = -1. */
    17. //und zum schluss noch 3-dimensionale arrays
    18. array3[x,y,z]
    19. /* hier gilt zur veranschaulichung das gleiche wie bei 2-dimensionalen arrays:
    20. stell sie dir einfach als koordinatensystem vor. du hast ne x-, y- und z-achse,
    21. einteilung sind positive ganze zahlen, und an jedem punkt befindet sich ein wert.*/
    Alles anzeigen


    du kannst beliebig viele parameter einbaun, musst aber darauf achten, dass die werte in jedem array untereinander den gleichen typ haben. du kannst z.b. nicht zahlen und strings in den selben array packen. (in dem fall würde die zahl als string behandelt werden, und du könntest sie nichtals solche in funktionen einbauen, sondern müsstest immer darauf achten ein real(array[]) zu benutzen).
    möglich wäre auch sowas:
    universum[länge,breite,höhe,zeit,und,noch,viel,mehr,dimensionen]
  • Hier nen Beispiel

    _1 2 3 4 5
    1
    2
    3 X
    4
    5

    Da wo X ist ist der Array [3,1].
    Verstehst du was ich meine?
    Face in the wind, we're riding the storm
    We'll stay our course whatever will come
    ~~ Stay (Running) Wild ~~

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

  • Original von Windapple
    Und noch so ne kleine Anekdote am Rande... verifiziere alle Infos mit der Hilfe!


    hä? was bedeutet verifizieren?

    Original von Windapple
    Der GM kann nämlich nur 1 und 2 dimensionale Arrays...


    wis? dis wusste ich nich... auf arrays traf ich zum ersten mal in einem lehrgang für c++, habe dort gelernt, was sie sind, wie sie funktionieren, und schaue mir deshalb nur bei jedem anderen programm/ jeder anderen programmiersprache an, ob es arrays gibt, wie sie dort genannt werden (ich glaube, in dem lehrgang wurden die dinger sogar als matrix bezeichnet. (matrix im mathematischen sinne)), und wie man sie benutzt.

    ich hab also in der hilfe nachgeschlagen, und gesehen, dass da einfach sowas stand wie: a[1]=0 und etwas später dann b[3,4]=36, und dachte prima, so einfach ist das, parameter einfach durch komma abtrennen. :D

    gut, dass ich bis jetzt noch nix über der 2. dimension gemacht habe... :ops:

    warum geht dis net? :motz: :motz: :motz: :motz: :motz: :motz: :motz: :motz: