Brauche hilfe beim Zufallssystem und ähnlichem..

  • GM 8

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

  • Brauche hilfe beim Zufallssystem und ähnlichem..

    hallo... folgendes Problem:
    Ich möchte für meinen kleinem Bruder ein Lernspiel machen.

    Bei dem Spiel geht es ums Rechnen...

    Wenn er nun auf eine Übung klickt, beispielsweiße jetzt die 7er Reihen...

    Wenn er es nun anklickt sollen übungen aufscheinen. Wenn er nun die richtige Antwort anklickt, soll eine neue Rechnung kommen. jedoch sollte dies immer unterschiedlich sein. (Wenn er alle Rechnungen richtig hat kommt eine Animation wo eine Rakete startet^^)

    Also wie löse ich nun folgende Probleme?:
    - Fragen und Antworten erscheinen erst, wenn die Frage zuvor gelöst wurde.
    - Fragen und Antworten sollen unterschiedlich erscheinen also wenn er den Raum neu startet dann kommt eine andere Reihenfolge damit er es nicht auswendig lernen kann

    wäre ECHT DANKBAR für die lösung!! :)
    mfg

    Ps: hab 8 Gm lite version...
    mfg Salmi
  • Hallo,
    damals habe ich so Ähnliches (Mathe Lernspiel) gebastelt.
    Es ist relativ primitiv – jedoch wenn du dich durch die Texte … Beschreibung „durchkämpfst“ und den Skeleton zeitgemäß einpassen würdest, hast du schon was fertiges parat – leider in Java. (braucht JVM am Rechner)
    Link
    Gruß
    Georg
  • sorry, ich kenn mich noch nicht wirklich aus beim programmieren und so^^... aber was ich meine ist, das man fast nur rechnungen lösen muss... aber trozdem danke :)

    aja so nebenbei... wie machst du den ton? Selber sprechen oder wie?^^
    mfg Salmi
  • Möchte hoffen, das ich hier keine Ärger bekomme. ?(

    In dem Spiel, habe ich mit Absicht „alles Mögliches offen“ gelassen.
    (Damit es Personalisiert werden kann.) – an sich anpassen.
    Auch Ton ist Editierbar! … Ja selber sprechen -> aufnehmen und als … speichern.
    Dann erscheint auch deine (Aufnahme) Stime / Textaussage) im Spiel.
  • Was du brauchst sind Arrays .
    Lies dir am besten das ganze Kapitel in der Hilfe durch ;)
    Danach versuchs mal selber zu lösen..
    Noch ein kleiner Denkanstoß....
    global.geloest[x] = true/false // Speicher ab ob Frage x gelöst wurde
    global.frage[x] = "7 mal 2" // Speichert alle Fragen ab (in diesem Fall Frage x
    global.loesung[x] = 14 // Speichert die Lösung der Frage x ab (zum Überprüfen)

    Mit Zufall ( random(); )suchst du dir nun eine Frage aus, überprüfst ob sie schon gelöst wurde und wenn nicht vergleichst du noch die Lösung.

    MfG xxskxx

    Nachtrag: Wenn du wirklich zufällige Rechnungen haben willst lässt du sie dir bei Room-Start einfach mit eine for - Schleife generieren.
    -
  • hm.. danke erstmal^^...

    aber ich finde keine hilfe die auf deutsch ist und auch ausführlich :S

    und mit dem beim Room Start ne for - SChleife generieren kann ich mal garnix anfangen xD

    bin allgemein n anfänger wenns ums programmieren geht^^..
    skripten kann ich auch fast gar nich :s
    mfg Salmi
  • Okey danke... Habs mir jetzt 3 mal aufmerksam durchgelesen, weiß nun aber trozdem nicht wo ich mit arrays anfangen soll, und und und... Kann ich das wirklich nicht anders ins spiel einbauen? :S

    Kann mir jemand ein Beispiel zeigen? Wo mind. 2 Arrays eingebaut sind? :S
    Wenn ich Beispiele sehe versteh ichs viel schneller^^...

    Wäre euch sehr dankbar :)
    mfg Salmi
  • Du kennst bereit Variablen:
    variable1 = 30;
    Das setzt den Wert der Variablen "variable1" auf 30.

    Was du brauchst sind 1-Dimensionale Arrays:

    Man kann nun auch mehrere Werte in 1 Variable Speichern:
    variabele1[0] = 20;
    variabele1[1] = 200;
    variabele1[2] = 2000;

    Wie du siehst wird einfach an den Variablen Namen 2 Eckige Klammern angefügt mit einer Zahl dazwischen.
    Du kannst den Wert ganze einfach auslesen in dem du die Variable einfach mit Eckige Klammer in die jeweilige Funktion schreibst:
    show_message(string(variable1[1])); // Es wird 200 ausgegeben.

    Dies lässt sich vorallem gut in for-Schleifen nutzen:

    GML-Quellcode

    1. for(i=0;i<=2;i+=1) {
    2. variable[i] = i*3 // Die For-Schleife zählt nun von 0 - 2 und setzt die Variable auf i*3
    3. }


    Wenn du dir nun den Wert von variable[1] ansiehst wird er 3 sein
    -
  • Ich hab es dir hier mal vorgemacht. Was mir dabei sehr wichtig ist, dass du verstehst, was die jeweiligen Zeilen bewirken. Wenn du etwas nicht verstehen solltest frag mich bitte! Kopier nicht einfach alles 1:1 .
    Ich hab extra mal die for-Schleife weggelassen damit es noch verständlicher wird und du nicht mit zu viel neuem konfrontiert wirst.



    Am Anfang des Spiels:

    GML-Quellcode

    1. anzahlDerFragen = 5;
    2. // Zuerst speichern wir alle Fragen in ein Array
    3. frage[0] = "7 mal 2";
    4. frage[1] = "7 mal 5";
    5. frage[2] = "7 mal 8";
    6. frage[3] = "7 mal 11";
    7. frage[4] = "7 mal 14";
    8. // Danach speichern wir die Lösung der Fragen auch in ein Array.
    9. // Wichtig ist, dass das Array die gleiche Zahl sein muss wie in der Variable "frage"
    10. loesung[0] = 14;
    11. loesung[1] = 35;
    12. loesung[2] = 56;
    13. loesung[3] = 77;
    14. loesung[4] = 98;
    15. // Dann setzten wir noch alle Fragen auf ungelöst.
    16. geloest[0] = false;
    17. geloest[1] = false;
    18. geloest[2] = false;
    19. geloest[3] = false;
    20. geloest[4] = false;
    Alles anzeigen


    Danach fragen wir mal die Übungen ab:

    GML-Quellcode

    1. uebung = round(random(4)); // Wir erzeugen eine zufällige Zahl von 0-4. Round rundet die Zahl, da random eine Kommazahl ausgibt.
    2. while (!geloest[uebung]) { // Solange die zufällig gewählte Übung schon gelöst ist ...
    3. uebung = round(random(4)); // wird wieder per Zufall eine andere Übung ausgewählt
    4. }
    5. antwort = get_integer(frage[uebung],""); // Hier kommt der interessante Teil von arrays. Wir setzen die Zufallszahl als array ein.
    6. if (antwort == loesung[uebung]) { // Nun überprüfen wir die Antwort des Spielers mit dem Array in der Variablen "Lösung"
    7. geloest[uebung] = true; // Nun setzen wir,dass die Übung "uebung" gelöst wurde
    8. // Nächste Übung anzeigen
    9. }
    10. else {
    11. // Die Übung war falsch...
    12. // Was soll dann passieren?
    13. }
    Alles anzeigen



    MfG xxskxx
    -

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

  • wow, danke :))

    aber kann es sein das da ein Befehl fehlt?

    GML-Quellcode

    1. if (antwort == loesung[uebung]) { // Nun überprüfen wir die Antwort des Spielers mit dem Array in der Variablen "Lösung"
    2. geloest[uebung] = true; // Nun setzen wir,dass die Übung "uebung" gelöst wurde
    3. // Nächste Übung anzeigen


    Da steht nichts abgesehen von der grünen Schrift (ich weiß was die grüne Schrift bedeutet, nur weiß ich nicht wie ich die nennen soll^^) das eine neue Übung angezeigt wird... Oder irr ich mich da (wieder mal^^)?
    mfg Salmi
  • In GML und vielen anderen Programmiersprachen
    kann man Kommentare in den Code schreiben, indem man // vor den Kommentar schreibt oder einfach den Kommentar zwischen /* und */ schreibt.
    Beispiel:

    GML-Quellcode

    1. // Kommentar
    2. /* Kommentar
    3. Kommentar
    4. Kommentar */


    Kommentare ("die grüne Schrift") wird vom Game Maker einfach ignoriert
    => Da mein Code ja nicht ohne Verständnis übernommen werden sollte hab ich nicht alles vorgemacht.
    Den Rest solltest du dann selbst schaffen ;)
    Wenn sonst alles klar ist :)
    -
  • das meinte ich doch mit dem^^... ich weiß was die grüne Schrift für eine Bedeutung hat, also das diese als Kommentar bereit steht, nur wusste ich nicht wie man diese nennt... worauf ich eigentlich hinaus wollte ist, das nach dem

    GML-Quellcode

    1. geloest[uebung] = true;


    Befehl kein weiterer folgt. Also Wenn die Lösung true ist, dann zur nächsten Frage gehen. Das fehlt hier (nach meiner Meinung..) Oder wo steht es? :P
    WÜrd mich intressieren :)
    mfg Salmi
  • Salmi schrieb:

    Also Wenn die Lösung true ist, dann zur nächsten Frage gehen. Das fehlt hier (nach meiner Meinung..) Oder wo steht es? :P
    WÜrd mich intressieren :)


    Naja ich würde sagen ich hab dir doch gezeigt wie man eine Übung anzeigt. Das musst du nur wiederholen
    => Du sollst es selbst machen :D
    -
  • und wieder eine Frage :S

    GML-Quellcode

    1. while (!geloest[uebung]) { // Solange die zufällig gewählte Übung schon gelöst ist ...


    Da zeigt der bei mir Syntax error... Und hier weiß ich leider überhaupt nich was ich da einsetzten sollte :S
    mfg Salmi

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