Prob. mit "else", "and", "or" und Co.

  • GM 6
  • Prob. mit "else", "and", "or" und Co.

    Hey ich hab nen kleines Problem. Da ich in der Hilfe sowie hier im Forum nicht nach "else", "and" oder "or" suchen kann, kann ich mir nicht selber helfen ^^

    Ich hab 3 Blöcke mit den Variablen global.einheit1, global.einheit2 und global.einheit3. Durch klicken der Blöcke erhöht sich jeweils der Wert der entsprechenden Variable. Also z.B. erhöht sich durch klicken von Block 1 der Wert von global.einheit1 und 1.
    Dabei darf aber keiner der 3 Blöcke den gleichen Wert haben wie ein anderer Block. Heißt wenn man auf Block 1 klickt um ihn von 1 auf 2 zu bringen, aber Aber Block 2 schon den Wer 2 hat und Block den Wert 3 hat, wird der Wert der Wert von Block 1 auf 4 gestellt.

    Weil die Werte zwischen 0-6 liegen und dann wieder von vorne beginnen hab ich das so gemacht.

    GML-Quellcode

    1. if klick=0
    2. {
    3. if global.einheit1=0 {if global.einheit2!=1 and global.einheit3!=1 {global.einheit1=1} else {{ if global.einheit2!=2 and global.einheit3!=2 {global.einheit1=2}} else {global.einheit1=3}}}
    4. if global.einheit1=1 {if global.einheit2!=2 and global.einheit3!=2 {global.einheit1=2} else {{ if global.einheit2!=3 and global.einheit3!=3 {global.einheit1=3}} else {global.einheit1=4}}}
    5. if global.einheit1=2 {if global.einheit2!=3 and global.einheit3!=3 {global.einheit1=3} else {{ if global.einheit2!=4 and global.einheit3!=4 {global.einheit1=4}} else {global.einheit1=5}}}
    6. if global.einheit1=3 {if global.einheit2!=4 and global.einheit3!=4 {global.einheit1=4} else {{ if global.einheit2!=5 and global.einheit3!=5 {global.einheit1=5}} else {global.einheit1=0}}}
    7. if global.einheit1=4 {if global.einheit2!=5 and global.einheit3!=5 {global.einheit1=5} else {{ if global.einheit2!=0 and global.einheit3!=0 {global.einheit1=0}} else {global.einheit1=1}}}
    8. if global.einheit1=5 {if global.einheit2!=0 and global.einheit3!=0 {global.einheit1=0} else {{ if global.einheit2!=1 and global.einheit3!=1 {global.einheit1=1}} else {global.einheit1=2}}}
    9. klick=1
    10. }


    Das geht aber nicht. Das 2. "else" stört obwohl es (abgeklammert) vom ersten ist. Wie kann man das ändern?
    Wenn das so nicht geht könnte man das auch mit einer "and" und "or" combination machen. Z.B.:

    GML-Quellcode

    1. if bla1=1 or bla2=1 and bla3=1 or bla4=1

    Das soll jetzt bedeuten das es auch erfüllt ist wenn bla1=1 und bla4=1 ist. Geht das so oder kann man das irgendwie einklammer was als erstes berechnet wird wie bei Matheaufgaben?

    Denke mal es ist recht unverständlich ^^ Würde mich aber super freuen wenn mir jemand helfen kann. Evt gehts auch viel einfacher ^^

    MfG Darkilein
    Und es gibt jede Menge Rechtschreibfehlern.
  • Ich sehe grade erst, dass die Zahlen ja nur bis 5 gehen und dann wieder bei 0 anfangen ... ^^"

    GML-Quellcode

    1. if (klick==0) {
    2. global.einheit1 += 1;
    3. if (global.einheit1==global.einheit2) {global.einheit1 += 1;}
    4. if (global.einheit1==global.einheit3) {global.einheit1 += 1;}
    5. if (global.einheit1>5) {global.einheit1 -= 6;} // < eingefügt
    6. klick=1;
    7. }