Zur Hauptnavigation springen [Alt]+[0] Zum Seiteninhalt springen [Alt]+[1]

Einarmiger Bandit

In diesem Projekt werden erneut Zufallszahlen genutzt, einfache logische Verknüpfungen kennen und nutzen gelernt und in einer Erweiterung erste kleine Unterprogramme verwendet und anschließend eingeübt.

Das gemeinsame Projekt erstreckt sich über drei Doppelstunden.

Einarmiger Bandit (Aktion)

Die Schülerinnen und Schüler werden wieder in Gruppen aufgeteilt und bekommen pro Gruppe drei Spielwürfel. Zu Beginn hat jedes Gruppenmitglied 100 Punkte auf dem Konto. Reihum wird gewürfelt. Die bzw. der Würfelnde wirft alle drei Würfel gleichzeitig. Zeigen alle drei Würfel eine andere Augenzahl, werden 5 Punkte vom Konto abgezogen. Sind genau zwei der drei Augenzahlen gleich, werden 10 Punkte und bei drei gleichen Augenzahlen sogar 100 Punkte gutgeschrieben.

Zum Spiel gibt es ein Arbeitsblatt mit Aufträgen (03_alg_bandit_vorbereitung_aussage). Die Schülerinnen und Schüler simulieren durch das Spiel den einarmigen Banditen und müssen sich in den Aufträgen damit beschäftigen, was bei der Auswertung bedacht werden muss.

Dabei kommen sie mit einfachen logischen Verknüpfungen in Berührung.

Übungen am Beispiel des Spiels „Mäxle“ vertiefen den Umgang (03_alg_bandit_log _verknuepfungen_uebungen).

Hintergrund:

Bei der Programmierung werden in Verzweigungen Bedingungen benötigt. Diese sind entweder wahr oder falsch. Je nach Wahrheitswert der Bedingung werden unterschiedliche Teile der Verzweigung ausgeführt.

Die Bedingung besteht aus einer Aussage. Diese Aussage kann wieder aus anderen Aussagen bestehen, die miteinander logisch verknüpft sind.

Beispiel:

W1 soll für die Augenzahl des ersten Würfels stehen, W2 für die des zweiten und W3 für die des dritten Würfels.

Bedingung 1: W1 > 3 („Die erste Augenzahl ist größer als 3.“ - Ergebnisse für W1: 4, 5, 6)

Bedingung 2: W2 = W1 („Die Augenzahlen von Würfel 1 und 2 sind gleich.“ - Ergebnisse für W1 und W2: (1,1), (2,2), (3,3), (4,4), (5,5), (6,6))

Bedingung 3: (W1 > 3) und (W2 = W1) („Die erste Augenzahl ist größer als 3 und ist gleich wie die zweite Augenzahl.“ - Ergebnisse für W1 und W2: (4,4), (5,5), (6,6))

Genauso wie zwei Aussagen mit „und“ verknüpft werden können, kann man einer Aussage ein „nicht“ voranstellen oder zwei Aussagen mit „oder“ verknüpfen.

Achtung: Im allgemeinen Sprachgebrauch wird „oder“ oft als „entweder oder“ genutzt. In der mathematischen Logik sind das zwei unterschiedliche Verknüpfungen. Bei „entweder oder“ müssen beide Aussagen unterschiedliche Wahrheitswerte haben, bei „oder“ dürfen auch beide wahr sein.

Die logischen Verknüpfungen lassen sich in sog. Wahrheitswerttabellen darstellen, die Ihnen hier zur Hilfe dienen sollen (s.u.). Die Schülerinnen und Schüler lernen diese aber erst in Klasse 9 beim Thema Aussagenlogik und Graphen kennen und nutzen.

Beispiele für Wahrheitswerttabellen:
A und B seien Aussagen, „w“ steht für die Aussage ist „wahr“, „f“ für die Aussage ist „falsch“.

A

nicht A

f

w

w

f

A

B

A und B

f

f

f

f

w

f

w

f

f

w

w

w

A

B

A oder B

f

f

f

f

w

w

w

f

w

w

w

w

Einarmiger Bandit (Programmierung)

Um einen einarmigen Banditen zu programmieren, brauchen die Schülerinnen und Schüler für die Auswertung genau diese logischen Verknüpfungen (03_alg_bandit_auftrag_1).

Es gibt hier unterschiedliche Lösungsmöglichkeiten. Es kann sein, dass nicht alle auf die kürzeste und eleganteste Variante kommen. Hier kann man am Ende drüber sprechen, warum auch andere Bedingungen den gleichen Wahrheitswert liefern.

Zum Beispiel genügt es, beim Vergleich auf drei gleiche Bilder folgende Aussage auf ihren Wahrheitswert zu prüfen:

(Bild 1 = Bild 2) und (Bild 1 = Bild 3)

Es folgt automatisch (Bild 2 = Bild 3), wenn die obige Aussage wahr ist.

Auch die Reihenfolge der Bedingungen entscheidet über den Umfang der Bedingungen.

Möglichkeit 1: Es wird zunächst überprüft, ob alle drei Bilder gleich sind

Falls (Bild 1 = Bild 2) und (Bild 1 = Bild 3)
  dann <werden die Punkte um 100 erhöht>
sonst falls ((Bild 1 = Bild 2) oder (Bild 1 = Bild 3)) oder (Bild 2 = Bild 3)
  dann <werden die Punkte um 10 erhöht>
sonst <werden Punkte abgezogen / hat man nichts gewonnen>.

Möglichkeit 2: Es wird zunächst überprüft, ob nur zwei der drei Bilder gleich sind

Falls ((Bild 1 = Bild 2) und nicht (Bild 1 = Bild 3)) oder
((Bild 1 = Bild 3) und nicht (Bild 1 = Bild 2)) oder ((Bild 2 = Bild 3)
und nicht (Bild 2 = Bild 1))
  dann <werden die Punkte um 10 erhöht>
sonst falls (Bild 1 = Bild 2) und (Bild 1 = Bild 3)
  dann <werden die Punkte um 100 erhöht>
sonst …

Bei der ersten Möglichkeit macht man sich zu nutze, dass die zweite Bedingung nur noch dann abgefragt wird, wenn nicht alle drei Würfel gleich sind. Deshalb kann man die Überprüfung des dritten Würfels weglassen. Statt 14 Vergleichen, braucht man nur acht.

Sollte niemand die zweite Möglichkeit nutzen, muss das nicht thematisiert werden.

Die Schülerinnen und Schüler können wieder eigenständig arbeiten oder Hilfekärtchen in Anspruch nehmen (Dabei können Sie gerne Hilfekarten ergänzen oder weglassen).

In einem weiteren Schritt soll das Programm ergänzt werden: Sind alle drei Bilder verschieden, werden ab jetzt Punkte abgezogen. Das erfordert jedes Mal die Überprüfung, ob überhaupt noch genug Punkte vorhanden sind. Sind alle Punkte weg, hat die Spielerin bzw. der Spieler verloren und das Spiel soll beendet sein.

Werden dagegen 1000 Punkte erreicht, endet das Spiel auch, nur dieses Mal mit einem Sieg.

Um die Übersichtlichkeit des Codes zu erhalten, macht es hier Sinn, die Punkteberechnung aus der Verzweigung auszulagern. Dazu bekommen die Schülerinnen und Schüler in ihrem Material (03_alg_bandit_auftrag_2_unterprogramme) gezeigt, wie sie Unterprogramme in ihrer Programmierumgebung nutzen können.

Zur Übung und Festigung des neu Erlernten gibt es ein Übungsblatt zu Unterprogrammen (03_alg_uebungen_unterprogramm), bei denen der erste Teil ohne, der zweite Teil mit Programmierumgebung zu lösen ist.

Bei diesem Projekt findet eine erste Begegnung mit dem Testen von Programmen oder Programmteilen statt. Auf einem Protokoll (04_alg_projekt_testfaelle_protokoll) finden die Schülerinnen und Schüler Anforderungen an ihr Projekt, die sie testen können. Sie können das Protokoll um weitere, selbst formulierte Anforderungen ergänzen.

Hintergrund:

Unterprogramme entsprechen Methoden. In Scratch wird ein neuer Block erzeugt und mit Namen versehen – dies entspricht der Deklaration der Methode. An den Kopf wird ein Codeblock angehängt, was dem Schreiben der Methode entspricht. Aufgerufen werden kann die Methode dann an beliebig vielen Stellen im Programm.

Beim Erzeugen eines neuen Blocks kann man über die Einstellungen auswählen, ob man eine Methode mit oder ohne Übergabeparameter haben möchte. Man kann hier mehrere Parameter, auch von unterschiedlichem Typ einfügen.

In unserem Projekt möchten wir für jede Möglichkeit die Punkte berechnen lassen. Es bietet sich deshalb an, ein Unterprogramm mit einer Zahlvariable zu definieren, der beim Aufrufen des Unterprogramms dann der Wert 10, 100 oder -5 übergeben wird.

Beispiel:

Definition: berechne_punkte(p)

Aufruf z.B. berechne_punkte(100)

Der Vollständigkeit halber sei hier erwähnt, dass im AI2 auch Methoden mit Rückgabewert „geschrieben“ und genutzt werden können. Diese werden im Blatt mit den Übungen auch genutzt.

 

Unterrichtsverlauf: Herunterladen [odt][102 KB]

Unterrichtsverlauf: Herunterladen [pdf][160 KB]

 

Weiter zu Softwareprojekt