Aus Das deutschsprachige Scratch-Wiki

<<> oder <>>
<<> oder <>>
Kategorie: Operatoren
Typ: Wahrheitsblock
Eingeführt in: unbekannt
Eingaben: keine
Plugin-Code (Wiki): <<> oder <>>


Der Block () oder () gehört zur Kategorie der Wahrheitsblöcke und zur Kategorie der Operatoren-Blöcke.

Funktion

Dieser Block gibt wahr zurück, wenn mindestens eine der zwei Bedingungen erfüllt ist. Wenn dies nicht der Fall ist, gibt er falsch zurück und der Inhalt von einem Falls-Block wird zum Beispiel nicht ausgeführt. Sie können mit Und-Blöcken und Nicht-Blöcken kombiniert werden. Man nennt eine solche Verbindung auch Disjunktion.

Beispiel

In diesem Beispiel prüft die Figur fortlaufend, ob sie das Objekt Apfel oder das Objekt Birne oder das Objekt Orange berührt. Zwei Oder-Blöcke sind hier verschachtelt. Es muss nur eine der drei Bedingungen erfüllt sein (nur ein Obst muss berührt werden), damit der Inhalt ausgeführt wird: Die Figur sagt: "Ich habe Obst gefunden!".

Wenn gf angeklickt
wiederhole fortlaufend
falls <<wird [Birne v] berührt> oder <<wird [Apfel v] berührt> oder <wird [Orange v] berührt>>> dann
sage [Ich habe Obst gefunden!]
end

Workaround

Das folgende Skript:

<<Bedingung1> oder <Bedingung2>>

kann mit folgendem Code repliziert werden.

<nicht <<nicht <Bedingung1>> und <nicht <Bedingung2>>>>

Das ganze funktioniert auch mit folgendem Skript. Hierbei wird zunächst eine Prüfervariable ("W/F") standartmäßig auf "falsch" gesetzt. Danach wird zunächst eine Bedingung und dann die andere mit Hilfe von if-Blöcken geprüft. Egal welche davon zutrifft oder ob beide zutreffen, die Prüfervariable wird auf "wahr" gesetzt. Trifft jedoch keine Bedingung zu wird kein if-Block aktiviert und die Prüfervariable ändert ihren Wert nicht, bleibt also bei "falsch".

setze [W/F v] auf [falsch]
falls <Bedingung1> dann
setze [W/F v] auf [wahr]
end
falls <Bedingung2> dann
setze [W/F v] auf [wahr]
end

Siehe auch



Code zum Einbinden ins Forum:
[wiki=de:() oder () (Block)]() oder () (Block)[/wiki]