Der Logikoperator OR


Sellen Sie sich vor, daß in dem Abenteuerspiel Drachen auftauchen sollen, wenn der Spieler sich zu weit nach Osten oder Westen wagt. Hier ist ein Beispiel, ADVENOR, das den logischen OR-Operator verwendet, um Ihrem Abenteuerspiel dieses furchterregende Hindernis in den Weg zu stellen. Es ist eine Variante des ADVENAND-Programms.

// advenor.cpp // Veranschaulicht OR-Logikoperaor #include <iostream.h> #include <process.h> // Für die Funktion exit() #include <conio.h> // Für die Funktion getche() void main() { char dir='a'; int x = 10, y = 10; while(dir != '\r') // Beenden durch Enter-Taste { cout << "\n\nIhre Position ist " << x << ", " << y; if(x < 5 || x > 15) // Wenn x wesentlich von 5 OR östlich von 15 cout << "\nVorsicht: Hier lauern Drachen"; cout << "\nDrücken Sie eine Richtungstaste (n, s, o, w): "; dir = getche(); // Richtung einlesen switch(dir) { case 'n': y--; break; // Kordinaten aktualisieren case 's': y++; break; case 'o': x++; break; case 'w': x--; break; } } }

Der Ausdruck

x<5 || x>15

ist wahr, wann immer entweder x kleiner als 5 (der Spieler ist zu weit westlich) oder x größer als 15 ist (der Spieler ist zu weit östlich). Noch einmal: Der Operator || hat einen niedriegeren Rang in der Bewertungsreihenfolge als die Vergleichsoperatoren < und >, so daß keine runden Klammern in diesem Ausdruck benötigt werden.


24