Zahlenwerte an verschiedenen Stellen ändern

  • GM 8

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

  • Zahlenwerte an verschiedenen Stellen ändern

    Hi Leute,

    ich habe mal ne "wahrscheinlich" für euch leicht zu lösende Frage, zu der ich in der Hilfe leider nichts finden kann.

    Also:

    Ich starte ein Spiel, GM generiert eine Zahl "play=0000"
    Drücke ich die "1" soll sich die erste Zahl auf 1 stellen, also "play=1000"
    drücke ich die "2" auf "play=0100"
    drücke ich die "3" auf "play=0010"
    drücke ich die "4" auf "play=0001"

    Er soll also die zahlen an den entsprechenden Stellen ändern. Gibt es einen Code, der an einer bestimmten Stelle eine Zahl ändert?

    Vielen Dank im vorraus

    GRONI
  • Ich verstehe nicht wieso du sowas machen, willst, aber du musst wissen, dass wenn du eine Variable mit 0000 initialisierst, dann ist das das selbe wie 0 (genau so wie 0001 = 1). Mir würde aber in den Sinn kommen eine Variable zu erstellen, und einen String darin zu speichern, also in deinem Fall play = "0000", und den String dann beim Drücken der jeweiligen Zahl zu ändern. Strings kann man ja auch vergleichen.

    Hier so könnte man das machen: bla.rar

    MfG Trixt0r

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • ok mein Sinn dahinter ist folgender, auch wenn ich damit wahrscheinlich nicht richtig liege, aber ich will es ja irendwie probieren...

    Ich möchte den Klassiker "SENSO" oder englisch auch bekannt unter "SIMON" erstellen.

    zu spielen hier: thepcmanwebsite.com/media/simon/

    Das habe ich mir aber irgendwie leichter vorgestellt wie es ist. Ich bin zwar sehr fortgeschritten mittlerweile, und habe schon mehrere Slot Games für GM gemacht, aber das überfordert mich
    dann doch was.
    Vielleicht kannst Du mir ja dabei helfen...
  • Aha, Senso...ja da könnte ich dir helfen, hab es schon mit Java programmiert ;).
    Naja, mit Game-Maker ist es, denk ich mal, leichter zu realisieren.
    Erstell vier Objekte für die Buttons, ein Controller-Objekt um den Score, Zeit, übrige Mausklicks, usw. ab zu checken. Im Controller-Objekt würde ich dann ein Array erstellen, mit vier Elementen (für jede Farbe eins, klar). Naja und dann musst du versuchen das Ganze richtig zu kombinieren, sodass da ein Senso oder Simon rauskommt :thumbsup: .
    Deine nullen und einsen kannst du eigentlich vergessen.

    MfG Trixt0r

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • Du machst einen String indem immer in der Reihenfolge ist wie die vorgebenen Reihenfolge (z.B. "01312") dann hängst du nach dem der Spieler richtig war immer eine Zahl von 0-3 dran hängen. Durch die Funktion string_char_at kannst du das Zeichen an einer Stelle in einem String rausfinden.
    Beispiel:
    Create Event:

    GML-Quellcode

    1. list="";
    2. pos=0;
    3. play=true;

    Alarm[0] Event:

    GML-Quellcode

    1. pos+=1;
    2. if (pos>string_length(list)) { play=false; pos=1; }

    Draw Event:

    GML-Quellcode

    1. if (pos>string_length(list)) or (list=="") { list+=string(floor(random(4))); pos=1; play=true;}
    2. else if (!play)
    3. {
    4. //Vier Felder
    5. draw_set_color(c_red);
    6. draw_rectangle(0,0,room_width/2,room_height/2,0);
    7. draw_set_color(c_green);
    8. draw_rectangle(room_width/2,0,room_width,room_height/2,0);
    9. draw_set_color(c_blue);
    10. draw_rectangle(0,room_height/2,room_width/2,room_height,0);
    11. draw_set_color(c_yellow);
    12. draw_rectangle(room_width/2,room_height/2,room_width,room_height,0);
    13. var posx,posy,p;
    14. posx=(mouse_x>room_width/2)
    15. posy=(mouse_y>room_height/2)
    16. if (posx==0) and (posy==0) { p=0; }
    17. if (posx==1) and (posy==0) { p=1; }
    18. if (posx==0) and (posy==1) { p=2; }
    19. if (posx==1) and (posy==1) { p=3; }
    20. if (mouse_check_button_pressed(mb_left)) {
    21. if (string(p)!=string_char_at(list,pos)) { show_message("Game over!");game_end(); exit; }
    22. pos+=1; }
    23. }
    24. if (play)
    25. {
    26. //Vier Felder
    27. draw_set_color(c_red);
    28. if (string_char_at(list,pos)=="0")draw_set_alpha(0.2) else draw_set_alpha(1)
    29. draw_rectangle(0,0,room_width/2,room_height/2,0);
    30. draw_set_color(c_green);
    31. if (string_char_at(list,pos)=="1")draw_set_alpha(0.2) else draw_set_alpha(1)
    32. draw_rectangle(room_width/2,0,room_width,room_height/2,0);
    33. draw_set_color(c_blue);
    34. if (string_char_at(list,pos)=="2")draw_set_alpha(0.2) else draw_set_alpha(1)
    35. draw_rectangle(0,room_height/2,room_width/2,room_height,0);
    36. draw_set_color(c_yellow);
    37. if (string_char_at(list,pos)=="3")draw_set_alpha(0.2) else draw_set_alpha(1)
    38. draw_rectangle(room_width/2,room_height/2,room_width,room_height,0);
    39. draw_set_alpha(1)
    40. if (alarm[0]<0) { alarm[0]=30; }
    41. }
    42. //NUR DEBUG:
    43. draw_set_color(c_black);
    44. draw_text(0,0,list);
    Alles anzeigen
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%

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

  • Benutzer online 1

    1 Besucher