Zur Haupt­na­vi­ga­ti­on sprin­gen [Alt]+[0] Zum Sei­ten­in­halt sprin­gen [Alt]+[1]

Ein­ar­mi­ger Ban­dit

In die­sem Pro­jekt wer­den er­neut Zu­falls­zah­len ge­nutzt, ein­fa­che lo­gi­sche Ver­knüp­fun­gen ken­nen und nut­zen ge­lernt und in einer Er­wei­te­rung erste klei­ne Un­ter­pro­gram­me ver­wen­det und an­schlie­ßend ein­ge­übt.

Das ge­mein­sa­me Pro­jekt er­streckt sich über drei Dop­pel­stun­den.

Ein­ar­mi­ger Ban­dit (Ak­ti­on)

Die Schü­le­rin­nen und Schü­ler wer­den wie­der in Grup­pen auf­ge­teilt und be­kom­men pro Grup­pe drei Spiel­wür­fel. Zu Be­ginn hat jedes Grup­pen­mit­glied 100 Punk­te auf dem Konto. Reih­um wird ge­wür­felt. Die bzw. der Wür­feln­de wirft alle drei Wür­fel gleich­zei­tig. Zei­gen alle drei Wür­fel eine an­de­re Au­gen­zahl, wer­den 5 Punk­te vom Konto ab­ge­zo­gen. Sind genau zwei der drei Au­gen­zah­len gleich, wer­den 10 Punk­te und bei drei glei­chen Au­gen­zah­len sogar 100 Punk­te gut­ge­schrie­ben.

Zum Spiel gibt es ein Ar­beits­blatt mit Auf­trä­gen (03_al­g_­ban­dit_vor­be­rei­tun­g_­aus­sa­ge). Die Schü­le­rin­nen und Schü­ler si­mu­lie­ren durch das Spiel den ein­ar­mi­gen Ban­di­ten und müs­sen sich in den Auf­trä­gen damit be­schäf­ti­gen, was bei der Aus­wer­tung be­dacht wer­den muss.

Dabei kom­men sie mit ein­fa­chen lo­gi­schen Ver­knüp­fun­gen in Be­rüh­rung.

Übun­gen am Bei­spiel des Spiels „Mäxle“ ver­tie­fen den Um­gang (03_al­g_­ban­dit_­log _ver­k­nue­pfun­gen_u­e­bun­gen).

Hin­ter­grund:

Bei der Pro­gram­mie­rung wer­den in Ver­zwei­gun­gen Be­din­gun­gen be­nö­tigt. Diese sind ent­we­der wahr oder falsch. Je nach Wahr­heits­wert der Be­din­gung wer­den un­ter­schied­li­che Teile der Ver­zwei­gung aus­ge­führt.

Die Be­din­gung be­steht aus einer Aus­sa­ge. Diese Aus­sa­ge kann wie­der aus an­de­ren Aus­sa­gen be­ste­hen, die mit­ein­an­der lo­gisch ver­knüpft sind.

Bei­spiel:

W1 soll für die Au­gen­zahl des ers­ten Wür­fels ste­hen, W2 für die des zwei­ten und W3 für die des drit­ten Wür­fels.

Be­din­gung 1: W1 > 3 („Die erste Au­gen­zahl ist grö­ßer als 3.“ - Er­geb­nis­se für W1: 4, 5, 6)

Be­din­gung 2: W2 = W1 („Die Au­gen­zah­len von Wür­fel 1 und 2 sind gleich.“ - Er­geb­nis­se für W1 und W2: (1,1), (2,2), (3,3), (4,4), (5,5), (6,6))

Be­din­gung 3: (W1 > 3) und (W2 = W1) („Die erste Au­gen­zahl ist grö­ßer als 3 und ist gleich wie die zwei­te Au­gen­zahl.“ - Er­geb­nis­se für W1 und W2: (4,4), (5,5), (6,6))

Ge­nau­so wie zwei Aus­sa­gen mit „und“ ver­knüpft wer­den kön­nen, kann man einer Aus­sa­ge ein „nicht“ vor­an­stel­len oder zwei Aus­sa­gen mit „oder“ ver­knüp­fen.

Ach­tung: Im all­ge­mei­nen Sprach­ge­brauch wird „oder“ oft als „ent­we­der oder“ ge­nutzt. In der ma­the­ma­ti­schen Logik sind das zwei un­ter­schied­li­che Ver­knüp­fun­gen. Bei „ent­we­der oder“ müs­sen beide Aus­sa­gen un­ter­schied­li­che Wahr­heits­wer­te haben, bei „oder“ dür­fen auch beide wahr sein.

Die lo­gi­schen Ver­knüp­fun­gen las­sen sich in sog. Wahr­heits­wert­ta­bel­len dar­stel­len, die Ihnen hier zur Hilfe die­nen sol­len (s.u.). Die Schü­le­rin­nen und Schü­ler ler­nen diese aber erst in Klas­se 9 beim Thema Aus­sa­gen­lo­gik und Gra­phen ken­nen und nut­zen.

Bei­spie­le für Wahr­heits­wert­ta­bel­len:
A und B seien Aus­sa­gen, „w“ steht für die Aus­sa­ge ist „wahr“, „f“ für die Aus­sa­ge 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

Ein­ar­mi­ger Ban­dit (Pro­gram­mie­rung)

Um einen ein­ar­mi­gen Ban­di­ten zu pro­gram­mie­ren, brau­chen die Schü­le­rin­nen und Schü­ler für die Aus­wer­tung genau diese lo­gi­schen Ver­knüp­fun­gen (03_al­g_­ban­dit_auf­tra­g_1).

Es gibt hier un­ter­schied­li­che Lö­sungs­mög­lich­kei­ten. Es kann sein, dass nicht alle auf die kür­zes­te und ele­gan­tes­te Va­ri­an­te kom­men. Hier kann man am Ende drü­ber spre­chen, warum auch an­de­re Be­din­gun­gen den glei­chen Wahr­heits­wert lie­fern.

Zum Bei­spiel ge­nügt es, beim Ver­gleich auf drei glei­che Bil­der fol­gen­de Aus­sa­ge auf ihren Wahr­heits­wert zu prü­fen:

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

Es folgt au­to­ma­tisch (Bild 2 = Bild 3), wenn die obige Aus­sa­ge wahr ist.

Auch die Rei­hen­fol­ge der Be­din­gun­gen ent­schei­det über den Um­fang der Be­din­gun­gen.

Mög­lich­keit 1: Es wird zu­nächst über­prüft, ob alle drei Bil­der 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ög­lich­keit 2: Es wird zu­nächst über­prüft, ob nur zwei der drei Bil­der 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 ers­ten Mög­lich­keit macht man sich zu nutze, dass die zwei­te Be­din­gung nur noch dann ab­ge­fragt wird, wenn nicht alle drei Wür­fel gleich sind. Des­halb kann man die Über­prü­fung des drit­ten Wür­fels weg­las­sen. Statt 14 Ver­glei­chen, braucht man nur acht.

Soll­te nie­mand die zwei­te Mög­lich­keit nut­zen, muss das nicht the­ma­ti­siert wer­den.

Die Schü­le­rin­nen und Schü­ler kön­nen wie­der ei­gen­stän­dig ar­bei­ten oder Hil­fe­kärt­chen in An­spruch neh­men (Dabei kön­nen Sie gerne Hil­fe­kar­ten er­gän­zen oder weg­las­sen).

In einem wei­te­ren Schritt soll das Pro­gramm er­gänzt wer­den: Sind alle drei Bil­der ver­schie­den, wer­den ab jetzt Punk­te ab­ge­zo­gen. Das er­for­dert jedes Mal die Über­prü­fung, ob über­haupt noch genug Punk­te vor­han­den sind. Sind alle Punk­te weg, hat die Spie­le­rin bzw. der Spie­ler ver­lo­ren und das Spiel soll be­en­det sein.

Wer­den da­ge­gen 1000 Punk­te er­reicht, endet das Spiel auch, nur die­ses Mal mit einem Sieg.

Um die Über­sicht­lich­keit des Codes zu er­hal­ten, macht es hier Sinn, die Punk­te­be­rech­nung aus der Ver­zwei­gung aus­zu­la­gern. Dazu be­kom­men die Schü­le­rin­nen und Schü­ler in ihrem Ma­te­ri­al (03_al­g_­ban­dit_auf­tra­g_2_­un­ter­pro­gram­me) ge­zeigt, wie sie Un­ter­pro­gram­me in ihrer Pro­gram­mier­um­ge­bung nut­zen kön­nen.

Zur Übung und Fes­ti­gung des neu Er­lern­ten gibt es ein Übungs­blatt zu Un­ter­pro­gram­men (03_al­g_u­e­bun­gen_­un­ter­pro­gramm), bei denen der erste Teil ohne, der zwei­te Teil mit Pro­gram­mier­um­ge­bung zu lösen ist.

Bei die­sem Pro­jekt fin­det eine erste Be­geg­nung mit dem Tes­ten von Pro­gram­men oder Pro­gramm­tei­len statt. Auf einem Pro­to­koll (04_al­g_­pro­jek­t_­test­fa­el­le_­pro­to­koll) fin­den die Schü­le­rin­nen und Schü­ler An­for­de­run­gen an ihr Pro­jekt, die sie tes­ten kön­nen. Sie kön­nen das Pro­to­koll um wei­te­re, selbst for­mu­lier­te An­for­de­run­gen er­gän­zen.

Hin­ter­grund:

Un­ter­pro­gram­me ent­spre­chen Me­tho­den. In Scratch wird ein neuer Block er­zeugt und mit Namen ver­se­hen – dies ent­spricht der De­kla­ra­ti­on der Me­tho­de. An den Kopf wird ein Co­de­block an­ge­hängt, was dem Schrei­ben der Me­tho­de ent­spricht. Auf­ge­ru­fen wer­den kann die Me­tho­de dann an be­lie­big vie­len Stel­len im Pro­gramm.

Beim Er­zeu­gen eines neuen Blocks kann man über die Ein­stel­lun­gen aus­wäh­len, ob man eine Me­tho­de mit oder ohne Über­ga­be­pa­ra­me­ter haben möch­te. Man kann hier meh­re­re Pa­ra­me­ter, auch von un­ter­schied­li­chem Typ ein­fü­gen.

In un­se­rem Pro­jekt möch­ten wir für jede Mög­lich­keit die Punk­te be­rech­nen las­sen. Es bie­tet sich des­halb an, ein Un­ter­pro­gramm mit einer Zahl­va­ria­ble zu de­fi­nie­ren, der beim Auf­ru­fen des Un­ter­pro­gramms dann der Wert 10, 100 oder -5 über­ge­ben wird.

Bei­spiel:

De­fi­ni­ti­on: be­rech­ne_­punk­te(p)

Auf­ruf z.B. be­rech­ne_­punk­te(100)

Der Voll­stän­dig­keit hal­ber sei hier er­wähnt, dass im AI2 auch Me­tho­den mit Rück­ga­be­wert „ge­schrie­ben“ und ge­nutzt wer­den kön­nen. Diese wer­den im Blatt mit den Übun­gen auch ge­nutzt.

 

Un­ter­richts­ver­lauf: Her­un­ter­la­den [odt][102 KB]

Un­ter­richts­ver­lauf: Her­un­ter­la­den [pdf][160 KB]

 

Wei­ter zu Soft­ware­pro­jekt