Prozent in code

  • Win

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

  • Du kannst dafür choose nutzen:

    GML-Quellcode

    1. if (choose(true, false)) {
    2. //mach etwas
    3. }


    oder direkt random:

    GML-Quellcode

    1. if (random(100) < 50) {
    2. //mach etwas
    3. }


    random(x) Gibt eine zufällige Zahl zwischen 0 und x wieder. Die Zahl ist immer kleiner als x.
    choose(val1,val2,val3,...) Gibt zufällig eine der angegeben Zahlen aus. Die Funktion kann bis zu 16 Argumente haben.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • einfacher wär es doch so:

    GML-Quellcode

    1. if (random(50)
    2. {
    3. instance_create(x,y,BAUER)
    4. }
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • random(100)
    Die Wahrscheinlichkeit das die Zahl 41 gezogen wird ist, 1 zu 100 (1 / 100, also 1%).

    random(100) < 50
    Die Wahrscheinlichkeit für die Zahlen {0, 1, 2, ..., 47, 48, 49} ist (1 / 100 * 50), also 50%.

    random(50)

    Für den Game Maker ist alles größer oder gleich als 0.5 true, d.h. bei random(50) ist die Wahrscheinlichkeit 0 (also false) zu ziehen 1 / 50, während die Wahrscheinlichkeit eine andere Zahl zuziehen 49 / 50 (98%) ist. Das heißt von 100 Fällen kommt in 98 Fällen durchschnittlich immer true herraus.

    Testen wir das ganze als mal:

    Test code:
    Spoiler anzeigen

    GML-Quellcode

    1. var yes, no, c;
    2. yes = 0;
    3. no = 0;
    4. c = 10000;
    5. var i;
    6. for (i = 0; i < c; i+=1) {
    7. if (random(100) < 50) {
    8. yes += 1;
    9. }
    10. else {
    11. no += 1;
    12. }
    13. }
    14. show_message("RUN 0:# Yes: " + string(round(yes / c * 100)) + "# No: " + string(round(no / c * 100)));
    15. yes = 0;
    16. no = 0;
    17. var i;
    18. for (i = 0; i < c; i+=1) {
    19. if (random(50)) {
    20. yes += 1;
    21. }
    22. else {
    23. no += 1;
    24. }
    25. }
    26. show_message("RUN 1:# Yes: " + string(round(yes / c * 100)) + "# No: " + string(round(no / c * 100)));
    Alles anzeigen


    Testergebnisse:

    Run 0: Yes 50% und No 50%
    Run 1: Yes 99% und No 1%
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • nico32222 schrieb:

    Wie kann denn machen das zu 50% eine aktion passiert? (CODE Verständlich oder?)
    Die Gm:S hilfe konnte mir dabei nicht helfen!

    Danke im hervoraus!


    Kann es sein das du dich etwas unglücklich ausgedrückt hast?
    Meine Vorposter meinen du meinst eine 50 Prozentige Möglichkeit das etwas Passiert.
    Ich denke du meinst das Etwas bis zu 50 Prozent, also bis zur hälfte ausgeführt wird oder? Also ein Gebäude z.B. nur zur hälfte aufgebaut wird und nicht ganz fertig. Lieg ich da richtig?
  • Die variante mit den random(100) ist die flexibelste. Das sieht dann so aus:

    GML-Quellcode

    1. If random(100) < WAHRSCHEINLICHKEIT
    2. {
    3. // Führe was auch immer aus.
    4. }

    Wie bereits erwähnt funktioniert das da random(100) eine zufällige Zahl zwischen 0 und 100 ausgibt. D.h. die wahrscheinlichkeit dass diese Zahl kleiner als z.B. 50 ist, beträgt genau 50%.

    Alternativ ist auch die Variante mit choose möglich. Dabei wird zufällig eins der übergebenen Werte zurück gegeben. Bei nur 2 Werten (true und false) haben beide je 50% Wahrscheinlichkeit.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Benutzer online 1

    1 Besucher