Zufällige Rechenaufgabe?

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

  • Zufällige Rechenaufgabe?

    Guten Abend!
    Ich bin gerade dabei ein kleines Minispiel für meinen kleinen Cousin zu erstellen!
    Ich woltle ein kleines Jump and Run machen, wo er neben vielen verschiedenen Spielaufgaben auch noch Schulaufgaben lösen muss :P . Jetzt soll es so sein, das wenn er das Objekt "raufgabe" berührt, eine zufällige Rechenaufgabe von den Zahlen 0-30 und + oder - kommt. Ich weiß das es irgendwie mit Radnom geht, doch ich bin dadrin nicht gut, könnte mir vielleicht jemand helfen?

    Wäre sehr nett wenn sich jemand dazu beretierklären würde, mit zu helfen.
    Nicht mehr alle Tassen im Schrank?
    Dann stell doch Gläser rein!!!
    xD
  • Hier mal ein kleines Beispiel, wie du eine einfache zufällig generierte Rechenaufgabe erstellst, und das eingegebene Ergebnis überprüfst:

    GML-Quellcode

    1. var z1, z2, erg, t;
    2. z1 = floor(random(100));
    3. z2 = floor(random(100));
    4. erg = z1 + z2;
    5. t = get_integer("Ergebnis von "+string(z1)+" und "+string(z2),0);
    6. if (t == erg) {
    7. show_message("Richtig!");
    8. } else {
    9. show_message("Falsch!");
    10. }
    Alles anzeigen


    EDIT: Fehler ausgebessert. :P Eben wars noch 'Zahlen raten'.
    fabse64 -> haiyyu
  • Ist eigntl ganz einfach

    Wenn man auch negative Ergebnise haben darf:

    Spoiler anzeigen

    GML-Quellcode

    1. {
    2. var zahl_eins, zahl_zwei, operator, ergebnis;
    3. zahl_eins = floor(random(31));
    4. zahl_zwei = floor(random(31));
    5. operator = floor(random(2))
    6. if (operator == 0)
    7. {
    8. ergebnis = get_integer("Wie viel ist " + string(zahl_eins) + " + " + string(zahl_zwei) + "?","");
    9. if (ergebnis == (zahl_eins+zahl_zwei))
    10. show_message("Du hast richtig gerechnet!");
    11. else
    12. show_message("Leider falsch, es wäre " + string((zahl_eins+zahl_zwei)) + " gewesen.");
    13. }
    14. else if (operator == 1)
    15. {
    16. ergebnis = get_integer("Wie viel ist " + string(zahl_eins) + " - " + string(zahl_zwei) + "?","");
    17. if (ergebnis == (zahl_eins-zahl_zwei))
    18. show_message("Du hast richtig gerechnet!");
    19. else
    20. show_message("Leider falsch, es wäre " + string((zahl_eins-zahl_zwei)) + " gewesen.");
    21. }
    22. }
    Alles anzeigen


    Ohne negative Ergebnise

    Spoiler anzeigen

    GML-Quellcode

    1. {
    2. var zahl_eins, zahl_zwei, operator, ergebnis;
    3. zahl_eins = floor(random(31));
    4. zahl_zwei = floor(random(31));
    5. operator = floor(random(2))
    6. while (zahl_eins == zahl_zwei)
    7. {
    8. zahl_eins = floor(random(31));
    9. zahl_zwei = floor(random(31));
    10. }
    11. if (operator == 0)
    12. {
    13. ergebnis = get_integer("Wie viel ist " + string(zahl_eins) + " + " + string(zahl_zwei) + "?","");
    14. if (ergebnis == (zahl_eins+zahl_zwei))
    15. show_message("Du hast richtig gerechnet!");
    16. else
    17. show_message("Leider falsch, es wäre " + string((zahl_eins+zahl_zwei)) + " gewesen.");
    18. }
    19. else if (operator == 1)
    20. {
    21. if (zahl_eins > zahl_zwei)
    22. {
    23. ergebnis = get_integer("Wie viel ist " + string(zahl_eins) + " - " + string(zahl_zwei) + "?","");
    24. if (ergebnis == (zahl_eins-zahl_zwei))
    25. show_message("Du hast richtig gerechnet!");
    26. else
    27. show_message("Leider falsch, es wäre " + string((zahl_eins-zahl_zwei)) + " gewesen.");
    28. }
    29. else if (zahl_eins < zahl_zwei)
    30. {
    31. ergebnis = get_integer("Wie viel ist " + string(zahl_zwei) + " - " + string(zahl_eins) + "?","");
    32. if (ergebnis == (zahl_zwei-zahl_eins))
    33. show_message("Du hast richtig gerechnet!");
    34. else
    35. show_message("Leider falsch, es wäre " + string((zahl_zwei-zahl_eins)) + " gewesen.");
    36. }
    37. }
    38. }
    Alles anzeigen


    Edit: zu spät ^^'''

    MFG
    Metalknight
  • Jetzt habe ich leider ein anderes Problem :/ sry :wacko:

    Also, ich wollte es so machen, das wenn man die Aufgabe richtig hat, der Gegner besiegt (gelöscht) wird. Dazu habe ich einfach instance_destroy(); eingegeben, doch er sagt mir am Anfang des Spiels immer einen Error.

    Code:

    {
    var zahl_eins, zahl_zwei, operator, ergebnis;

    zahl_eins = floor(random(31));
    zahl_zwei = floor(random(31));
    operator = floor(random(2))

    while (zahl_eins == zahl_zwei)
    {
    zahl_eins = floor(random(31));
    zahl_zwei = floor(random(31));
    }

    if (operator == 0)
    {
    ergebnis = get_integer("Wie viel ist " + string(zahl_eins) + " + " + string(zahl_zwei) + "?","");

    if (ergebnis == (zahl_eins+zahl_zwei))
    show_message("Du hast richtig gerechnet!");
    instance_destroy();

    else
    show_message("Leider falsch, es wäre " + string((zahl_eins+zahl_zwei)) + " gewesen.");
    }
    else if (operator == 1)
    {
    if (zahl_eins > zahl_zwei)
    {
    ergebnis = get_integer("Wie viel ist " + string(zahl_eins) + " - " + string(zahl_zwei) + "?","");

    if (ergebnis == (zahl_eins-zahl_zwei))
    show_message("Du hast richtig gerechnet!");
    instance_destroy();

    else
    show_message("Leider falsch, es wäre " + string((zahl_eins-zahl_zwei)) + " gewesen.");
    }
    else if (zahl_eins < zahl_zwei)
    {
    ergebnis = get_integer("Wie viel ist " + string(zahl_zwei) + " - " + string(zahl_eins) + "?","");

    if (ergebnis == (zahl_zwei-zahl_eins))
    show_message("Du hast richtig gerechnet!");
    instance_destroy();

    else
    show_message("Leider falsch, es wäre " + string((zahl_zwei-zahl_eins)) + " gewesen.");
    }
    }
    }

    Errormeldung:


    ___________________________________________
    FATAL ERROR in
    action number 1
    of Collision Event with object obj_player
    for object obj_enemy_simple:

    COMPILATION ERROR in code action
    Error in code at line 22:
    else

    at position 7: Unexpected symbol in expression.
    Nicht mehr alle Tassen im Schrank?
    Dann stell doch Gläser rein!!!
    xD
  • Wasnlos schrieb:

    Jetzt habe ich leider ein anderes Problem :/ sry :wacko:

    Also, ich wollte es so machen, das wenn man die Aufgabe richtig hat, der Gegner besiegt (gelöscht) wird. Dazu habe ich einfach instance_destroy(); eingegeben, doch er sagt mir am Anfang des Spiels immer einen Error.

    Code:

    {
    var zahl_eins, zahl_zwei, operator, ergebnis;

    zahl_eins = floor(random(31));
    zahl_zwei = floor(random(31));
    operator = floor(random(2))

    while (zahl_eins == zahl_zwei)
    {
    zahl_eins = floor(random(31));
    zahl_zwei = floor(random(31));
    }

    if (operator == 0)
    {
    ergebnis = get_integer("Wie viel ist " + string(zahl_eins) + " + " + string(zahl_zwei) + "?","");

    if (ergebnis == (zahl_eins+zahl_zwei))
    show_message("Du hast richtig gerechnet!");
    instance_destroy();

    else
    show_message("Leider falsch, es wäre " + string((zahl_eins+zahl_zwei)) + " gewesen.");
    }
    else if (operator == 1)
    {
    if (zahl_eins > zahl_zwei)
    {
    ergebnis = get_integer("Wie viel ist " + string(zahl_eins) + " - " + string(zahl_zwei) + "?","");

    if (ergebnis == (zahl_eins-zahl_zwei))
    show_message("Du hast richtig gerechnet!");
    instance_destroy();

    else
    show_message("Leider falsch, es wäre " + string((zahl_eins-zahl_zwei)) + " gewesen.");

    }
    else if (zahl_eins < zahl_zwei)
    {
    ergebnis = get_integer("Wie viel ist " + string(zahl_zwei) + " - " + string(zahl_eins) + "?","");

    if (ergebnis == (zahl_zwei-zahl_eins))
    show_message("Du hast richtig gerechnet!");
    instance_destroy();

    else
    show_message("Leider falsch, es wäre " + string((zahl_zwei-zahl_eins)) + " gewesen.");
    }
    }
    }

    Errormeldung:


    ___________________________________________
    FATAL ERROR in
    action number 1
    of Collision Event with object obj_player
    for object obj_enemy_simple:

    COMPILATION ERROR in code action
    Error in code at line 22:
    else

    at position 7: Unexpected symbol in expression.
    Habs überflogen ;D
    Dein Fehler ist, das du ein Else benutzt, ohne vorher die befehle auszuklammern

    Mach aus den oben Fett Makierten folgendes:
    if (ergebnis == (zahl_eins-zahl_zwei))
    {
    show_message("Du hast richtig gerechnet!");
    instance_destroy();
    }
    else
    show_message("Leider falsch, es wäre " + string((zahl_eins-zahl_zwei)) + " gewesen.");


    Edit:
    Das musst du dann bei allen 3 "Richtig-Ergebnis" if schleifen machen.