7 Es wird logisch …

In diesem Kapitel lernst du, wie du dei­nem Calliope mini beibringst, zwischen Wahr und Falsch zu unterscheiden.

Die Einführung zu diesem Kapitel wurde von Jan Thar geschrieben. »Würfelglück« wurde von Nadine Bergner erstellt und »Tischbillard« von Julia Kleeberger.

Bisher sind die Programme in diesem Buch fast immer einfache Abfolgen gewesen, bei denen der Calliope mini immer die gleichen Bilder abspielt oder Messwerte der Sensoren direkt wiedergibt. Entscheidungen kannst du mit dem Calliope mini durch einfache »Wahr oder Falsch«-Fragen treffen, der Calliope mini kann dann je nach Antwort unterschiedliche Aktionen ausführen, was du ja schon in Abschnitt 3.1 kennengelernt hast. In diesem Kapitel lernst du, wie dein Calliope mini diese Entscheidungen trifft.

Abb. 7–1 Ist Knopf A gedrückt?

Ein einfaches Beispiel: Hier schaut dein Calliope mini nach, ob der Knopf (auf English: Button) gedrückt ist. Ist das wahr, führt er die »dann«-Aktion aus. Wenn der Button nicht gedrückt ist (»Button A ist gedrückt« stimmt also dann nicht), dann folgt die »ansonsten«-Aktion. Das Schöne bei diesen Sachen ist, man kann sie ganz leicht miteinander verschachteln und umkehren: Möchtest du zum Beispiel, dass dein Calliope mini genau umgekehrt auf das Drücken des Buttons reagiert, könntest du hier noch recht einfach die LED-Farben austauschen. Es reicht aber auch, einen »Nicht«-Block vor den lilafarbenen Programmierbefehl zu setzen – was besonders, wenn du später kompliziertere Programme schreibst, interessant ist.

Abb. 7–2 Ist Knopf A nicht gedrückt?

Da »Nicht wahr« falsch ist und »nicht falsch« wahr, reagiert der Calliope mini nun auf den Knopfdruck genau umgekehrt: Drückst du den Button, sieht der Calliope mini, dass »Button A ist gedrückt« wahr ist. Da aber davor noch das »nicht« steht, wird in der Schleife nun der »ansonsten«-Zweig durchgeführt, da das, was nach »wenn« steht, zusammen falsch ist. Natürlich könntest du auch noch ein weiteres »nicht« vor das »nicht« setzen (oder beliebig viele), aber vielleicht weißt du schon, was dann passieren wird. Als Tabelle:

Button A ist gedrückt Ergebnis für nicht A
wahr falsch
wahr falsch
falsch wahr
falsch wahr

Tab. 7–1 Verneinung: Das Gegenteil wird gemacht

Zurück zum Originalprogramm ohne den »Nicht«-Befehl. Wie du schon aus Kapitel 3 weißt, kannst du auch auf das kleine Dreieck neben »A« klicken und »A+B« wählen (siehe Abschnitt 3.1). Wähle das einmal aus und lade es auf deinen Calliope mini.

Abb. 7–3 Wird die LED grün oder rot?

Wann wird nun die LED grün? Nur wenn beide Buttons gleichzeitig gedrückt werden, das entspricht dem logischen »und«: Der Calliope mini betrachtet nun beide Buttons beziehungsweise Knöpfe, und nur wenn beide gedrückt sind (die Frage, ob ein Button gedrückt ist, kann also mit »wahr« für jeden der beiden Buttons beantwortet werden), ist auch die gesamte Frage, ob Button A und Button B gedrückt wurde, »wahr«. Ist entweder einer oder sind gar beide nicht gedrückt, ergibt sich ein »falsch«: Sowohl »falsch und falsch« wie auch »wahr und falsch« zusammen ergibt immer ein »falsch«. Das Ganze kann man auch etwas übersichtlicher als Tabelle schreiben:

Button A ist gedrückt Button B ist gedrückt Ergebnis für A und B
wahr wahr wahr
wahr falsch falsch
falsch wahr falsch
falsch falsch falsch

Tab. 7–2 Und: Zwei Ereignisse müssen gleichzeitig wahr sein

Der Editor erlaubt aber noch eine andere Schreibweise der gleichen Aussage:

Abb. 7–4 So geht’s auch

Das ist zwar länger, aber der Vorteil dabei ist, dass du so auch ganz andere Fragen anstelle der Button-Abfrage einbauen kannst:

Abb. 7–5 Button wird mit Lichtstärke kombiniert

Zum Beispiel die Abfrage der Lichtstärke. Im Gegensatz zu »Button A ist ge­drückt« liefert »Lichtstärke« allerdings keinen »wahr«- oder »falsch«-Wert, sondern stattdessen einen Zahl. Um den Wert in einen einfachen »wahr«- oder »falsch«-Wert zu überführen, kannst du einen Vergleich mit einem anderen Zahlenwert machen – hier fragst du also ab, ob der vom Lichtsensor gemessene Wert grösser (>) als 10 ist. Es gibt noch eine ganze Reihe anderer Vergleichsmöglichkeiten, aber alle entsprechen eigentlich den ganz normalen Vergleichen, die du auch im realen Leben so machen würdest: Eine Sache kann beispielsweise größer »>«, kleiner »<« oder gleich groß »=« sein. Die anderen Vergleiche sind nur dazu da, das noch etwas zu erweitern. »≠« heißt beispielsweise, dass beide Dinge nicht exakt die gleiche Größe haben, bei »≥« (»≤«) reicht es bereits, wenn ein Objekt gleich groß oder größer (kleiner) ist, um dies als »wahr« zu erfüllen.

Womit auch schon der letzte wichtige Punkt kommt: Statt »und« lassen sich beide Fragen hier auch durch ein »oder« dazwischen verbinden:

Abb. 7–6 Die Verbindung durch »oder«

Was passiert nun? Egal, welcher der beiden Buttons gedrückt wird, wird die LED grün leuchten. Nur wenn keiner gedrückt ist, bleibt sie rot. Für deinen Calliope mini ist also »wahr oder falsch« zusammen »wahr« (im Grunde sind Mikroprozessoren also sehr nett, sie nehmen im Zweifelsfall immer das Beste an). Auch hier wieder als Tabelle:

Button A ist gedrückt Button B ist gedrückt Ergebnis für A oder B
wahr wahr wahr
wahr falsch wahr
falsch wahr wahr
falsch falsch falsch

Tab. 7–3 Oder: Entweder das eine oder das andere muss wahr sein.

Wofür nutzen wir Logik in der Programmierung?

Mit Logik fragen wir einfache »wahr oder falsch«-Fragen, entweder als direkte Fragen »Button gedrückt?« oder als Vergleiche »Wert 1 > Wert 2«, die wir durch »und« oder »oder« miteinander verknüpfen sowie durch »nicht« ins Gegenteil umkehren können.

Zum Abschluss eine kleine Rätselaufgabe: Bevor du das folgende Programm auf deinen Calliope mini lädst, kannst du bereits erkennen, mit welcher Farbe die LED leuchten wird? »wahr« und »falsch« sind dabei einfach nur Blöcke, die bereits einen entsprechenden Wahrheitswert haben. Hier werden sie zusammen mit den vorher vorgestellten Programmierblöcken zu einer großen Frage zusammengestellt.

Abb. 7–7 Alles zusammengefasst

Na ja, auch ohne Herunterladen: Der Simulator verrät es direkt. »10>1« ist natürlich wahr, damit ergibt sich für den hinteren Teil, dass »wahr und wahr« auch wahr ist. Im vorderen Teil steht »nicht falsch«, was wahr ist, so dass zusammen »wahr oder wahr« auch wahr ist. Wie du hier sehen kannst: In manchen Fällen braucht man sich gar nicht so viele Gedanken zu machen: Sobald du weißt, dass der erste Teil wahr ist und der Rest mit einem »oder« damit verbunden ist, ist nach der Tabelle für »oder« bereits klar, dass der gesamte Ausdruck dann wahr sein wird. Die Auswertung des alternativen Teils kannst du dir also sparen.

Falls man bei solch wild verschachtelten Fragen einmal den Überblick verliert: Man kann auch einfach Teilfrageblöcke der großen Frage in eine eigene »wenn-dann«-Schleife ziehen und einfach schauen, was da genau passiert. Wenn du noch etwas trainieren möchtest, bevor du dich an die spannenden Projekte in diesem Kapitel begibst: Versuch doch einfach einmal, ein paar möglichst komplexe Verschachtelungen aus ganz vielen »und«-, »oder«- und »nicht«-Fragen zusammenzustellen und schau, ob du auf die gleichen Antworten wie der Calliope mini kommst.

7.1 Würfelglück

Du kennst sie von Brettspielen. Manchmal freust du dich, manchmal ärgerst du dich. Richtig, die Rede ist von Würfeln! Die meisten Würfel haben sechs Seiten, manche auch mehr. Wenn du einen Würfel mit deinem Calliope mini nachbaust, hast du sogar die freie Wahl, wie viele Seiten er haben soll und welche Zahlen auf den Seiten stehen.

Abb. 7–8 20-seitige Würfel

Ziel des Spiels »Würfelglück«

In diesem Kapitel erfährst du, wie du eine Grundstruktur für ein Würfelspiel bauen kannst. Dabei kannst du selbst wählen, wie viele Seiten der virtuelle Würfel hat, welche Zahlen auf den Seiten stehen sollen und wer das Spiel gewinnt.

Bei diesem ersten Beispiel baust du einen klassischen sechsseitigen Würfel nach, und es gewinnt ganz einfach derjenige, der die höhere Zahl würfelt. Das ist aber nur die Basis für deine weiteren Ideen, welche Spiele du mit deinem super flexi­blen virtuellen Würfel gestalten möchtest.

Damit dieses Würfelspiel mit einem einzigen Calliope mini funktioniert, musst du dich später mit deinem Gegner beim Würfeln immer abwechseln. Die größte Herausforderung bei diesem Projekt ist es, nicht den Überblick zu verlieren, wer gerade dran ist.

7.1.1 Platzhalter steuert den Spielverlauf

Um den gesamten Spielverlauf zu kontrollieren, fügst du als Erstes einen Platzhalter ein, der den Spielverlauf regelt. Du könntest ihn zum Beispiel »Spielphase« nennen. Zu Beginn des Spiels soll der Platzhalter erst einmal die Zahl »0« speichern, dies kennzeichnet den Spielbeginn. Dann könnte eine Zeichenfolge erscheinen oder auch ein Ton erklingen, damit die Spieler wissen, dass das Spiel nun beginnt. Anschließend muss der Wert des Platzhalters auf »1« gesetzt werden, da nun der erste Spieler (Spieler A) startet. Das Programmstück, was beim Starten ausgeführt wird, könnte also zum Beispiel so aussehen.

Abb. 7–9 Beispiel für den Spielbeginn

Für die weiteren Phasen des Spiels sind hier folgende Zahlen im Platzhalter »Spielphase« angedacht:

Damit der Calliope mini das Spiel steuern kann, brauchst du eine Dauerschleife, die nacheinander die verschiedenen Phasen abläuft. Ein wichtiges Element dazu ist der »während-mache«-Befehl.

»während-mache«-Befehl

BefehlMit dem Befehl »während-mache« aus der Befehlsgruppe »Schleifen«, kannst du genau vorgeben, was der Calliope mini in jeder Spielphase (also zum Beispiel »während Spielphase = 3«) machen soll.

Du kannst nun vorne starten. Kombiniere dazu eine Dauerschleife mit dem »während-mache«-Befehl.

Abb. 7–10 Grundstruktur des Programms

7.1.3 Spielphase 1 – Spieler A würfelt

In der Bedingung hinter dem »während« musst du prüfen, ob das Spiel in der passenden Phase ist, also hier »Spielphase = 1«. Nun gibt es zwei verschiedene Möglichkeiten:

1.Spieler A würfelt

2.Spieler A würfelt noch nicht

In dieser Basisversion des Spiels geschieht das Würfeln einfach über das Drücken der Knöpfe. Dies lässt sich später problemlos verändern, zum Beispiel könnten die Spieler würfeln, indem sie den Calliope mini schütteln, oder ein Spieler kippt den Calliope mini nach rechts, der andere Spieler nach links. Wenn das Grundprogramm einmal steht, kannst du es vielfältig nach eigenen Wünschen frei verändern.

Abb. 7–11 Abfrage, ob Spieler würfelt in Phase 1

7.1.4 Das Würfeln

Falls der Spieler würfelt, müssen gleich mehrere Dinge passieren:

1.Es muss eine Zufallszahl berechnet und gespeichert werden.

2.Diese Zufallszahl soll auf dem LED-Display (für eine kurze Zeit) angezeigt werden.

3.Das Spiel wechselt in die nächste Phase.

Damit der Calliope mini die gewürfelte Zahl auch speichern kann, brauchst du als Erstes einen Platzhalter (zum Beispiel »WürfelwurfSpielerA«). In diesen Platzhalter kannst du dann die Zufallszahl speichern. Damit du eine Zufallszahl von 1 bis 6 (wie bei einem normalen Würfel) bekommst, musst du zu der Zufallszahl aus dem Befehl »wähle eine zufällige Zahl zwischen 0 und 5« noch eine »1« hinzu addieren.

Abb. 7–12 Berechnung einer Zufallszahl von 1 bis 6

Nun ist die Zufallszahl berechnet und auch abgespeichert, aber der Spieler möchte natürlich auch sehen, was er gewürfelt hat. Die Ausgabe des Ergebnisses im Platzhalter »WürfelwurfSpielerA« schaffst du doch sicher selbst. Danach solltest du auch eine kurze Pause einfügen, damit der Spieler Zeit hat, sein Ergebnis zu lesen, bevor das Spiel in die nächste Phase wechselt.

Und zum Abschluss nicht vergessen: Das Spiel wechselt nun in Spielphase 2.

Falls Spieler 1 noch nicht würfelt, könntest du den Buchstaben »A« anzeigen, damit der erste Spieler merkt, dass er an der Reihe ist. Alternativ könntest du auch einen Ton ausgeben oder die RGB-LED in der passenden Farbe leuchten lassen.

Abb. 7–13 Beispiel: das Würfeln in Phase 1

Nun hast du einen riesigen Schritt geschafft. Die Spielphase 1, in der der erste Spieler würfelt, ist geschafft. Du kannst es also schon ausprobieren.

Um das Spiel neu zu starten, kannst du den »Reset«-Knopf verwenden.

7.1.5 Spielphase 2 – Spieler B würfelt

Nachdem Spieler A (in Spielphase 1) gewürfelt hat, ist nun Spieler B an der Reihe. Für die Spielphase 2 kannst du einiges aus Phase 1 übernehmen. Damit auch nichts schiefgeht, hier noch einmal die wichtigsten Schritte im Überblick:

1.Es muss eine Zufallszahl von 1 bis 6 erstellt werden.

2.Diese Zufallszahl muss in einem weiteren (!) Platzhalter gespeichert werden.

3.Dann sollte das Würfelergebnis auch angezeigt werden.

4.Eine kleine Pause nicht vergessen, damit der Spieler Zeit hat, das Ergebnis anzuschauen.

5.Das Spiel wechselt in die nächste Phase.

Weiter sollte hier kein »A«, sondern ein »B« erscheinen, damit der zweite Spieler auch weiß, dass er nun würfeln darf.

Such dir nun deinen ersten Gegner. Testet das Würfelspiel zu zweit. Prüfe dabei Folgendes:

Spielt am besten ein paar Runden, um zu prüfen, ob alles so funktioniert, wie ihr es erwartet. Allerdings müsst ihr hierbei eure Ergebnisse immer selbst im Kopf behalten und am Ende vergleichen, denn bisher fehlt ja noch die Spielphase 3, in der das Ergebnis angezeigt wird.

7.1.6 Das Ergebnis

Jetzt wird es spannend. Der Calliope mini soll das Ergebnis automatisch berechnen. Genau wie in den anderen Phasen, brauchst du auch hier wieder einen »während-mache«-Befehl, der sicherstellt, dass das Spiel nun in Spielphase 3 ist. Damit die Spieler wissen, dass nun der Sieger verkündet wird, könntest du:

Jetzt kommt der Moment der Entscheidung. Der Calliope mini muss nun ausrechnen, wer gewonnen hat. Dabei gibt es drei Möglichkeiten:

1.Der Würfelwurf von Spieler A ist größer (>) als der von Spieler B.  Spieler A hat gewonnen.

2.Der Würfelwurf von Spieler A ist kleiner (<) als der von Spieler B.  Spieler B hat gewonnen.

3.Beide Spieler haben die gleiche Zahl gewürfelt.

Für alle drei Fälle brauchst du einen »wenn-dann«-Befehl mit der passenden Bedingung. Für den ersten Fall müsste er lauten: »wenn WürfelwurfSpielerA > WürfelwurfSpielerB, dann zeige Zeichenfolge »A««.

Abb. 7–14 Ergebnisausgabe für den Fall, dass Spieler A gewinnt

Genau nach diesem Beispiel kannst du auch die Ausgabe für den zweiten Fall (Spieler B gewinnt) programmieren.

Im dritten Fall kannst du dich entscheiden: Möchtest du lieber beide Spieler feiern, dann kannst du »beide« ausgeben lassen, sonst hat wohl »keiner« gewonnen.

Die Verkündigung des Ergebnisses kannst du wieder nach Belieben mit Tönen oder Farben der RGB-LED ausschmücken. Anschließend solltest du daran denken, dass das Spiel noch in die letzte Phase (Nummer 4) wechselt.

7.1.7 Nach dem Spiel ist vor dem Spiel

Wenn nun der Sieger der ersten Runde lange genug gefeiert hat, willst du sicher die zweite Runde starten. Wenn du nun den »Reset«-Knopf drückst, beginnt das Spiel zwar von vorne, aber vielleicht möchtest du später noch die bisherigen Punkte speichern. Die sind bei einem Druck auf den »Reset«-Knopf allerdings immer weg, da das Programm ja komplett neu gestartet wird. Du brauchst also einen anderen Weg.

Das ist auch gar kein großes Problem, da du ja einen Platzhalter für die Spielphasen hast. Wenn du diesen Platzhalter wieder auf »1« setzt, startet das Spiel in die nächste Runde, und Spieler A beginnt wieder zu würfeln. Es gibt ganz verschiedene Ideen, wie man die zweite Runde starten könnte. Eine Möglichkeit wäre, dass beide Spieler gleichzeitig ihre Knöpfe drücken müssen. Dann ist auch sichergestellt, dass beide Spieler bereit für die nächste Runde sind.

Du könntest also in Spielphase 4 abfragen, ob Knopf »A« und »B« gedrückt ist, dann eine Zeichenfolge wie »Nächste Runde« anzeigen lassen und wieder in Spielphase 1 wechseln. Dann speicherst du in dem Platzhalter »Spielphase« die »1« und das Spiel beginnt von vorn.

Abb. 7–15 Neustart des Spiels in die nächste Runde

Ausführungsgeschwindigkeit

Beachte, dass der Calliope mini alle Befehle super schnell nacheinander abarbeitet. Falls du also den Text »Nächste Runde« nicht anzeigen lässt und stattdessen direkt in Spielphase 1 wechselst, wird sofort der Würfelwurf für Spieler A angezeigt, da ja Knopf »A« bereits gedrückt wird. Du musst den Spielern also Zeit geben, die Knöpfe wieder loszulassen, bevor Spielphase 1 startet.

Jetzt wird es Zeit, dein Ergebnis zu erproben. Such dir einen Gegner und startet gemeinsam das Würfelspiel.

Du hast das gesamte Würfelspiel einmal von Beginn bis Ende programmiert, und es funktioniert. Klasse!

Wenn du Lust hast, kannst du nun dein Würfelspiel erweitern, verändern und umgestalten. Hier ein paar Ideen, wie das Spiel noch interessanter werden könnte:

Abb. 7–16 Der Calliope mini zeigt mit dem LED-Display nach unten.

Abb. 7–17 Erweiterung um den Punktestand

Abb. 7–18 Spielstand wird bei Schütteln angezeigt.

Ganz bestimmt hast du selbst noch viele weitere Ideen, wie du dein Würfelspiel erweitern könntest. Gerne kannst du auch Ideen aus anderen Projekten einbauen.

Ganz viel Würfelglück dabei!

7.1.9 Unfaires Spiel

Dieser Abschnitt ist nur etwas für Betrügerinnen und Betrüger. Vielleicht bist du ja sogar selbst schon auf die Idee gekommen. Mit einem solchen automatischen Würfel kann man auch ganz einfach betrügen. Dazu brauchst du nur die Berechnung der Zufallszahl bei Spieler A zu verändern. Zum Beispiel könntest du den Calliope mini so programmieren, dass bei Spieler A nur Zahlen zwischen 3 und 6 angezeigt werden.

Abb. 7–19 Unfaire Berechnung der eigenen Zufallszahl von 3 bis 6

Wenn du nun dafür sorgst, dass du selbst immer Spieler A bist, hast du viel höhere Chancen zu gewinnen, da bei dir nur die Zahlen 3 bis 6 kommen können, bei deinem Gegner aber weiterhin die Zahlen 1 bis 6.

Wenn du noch gemeiner sein möchtest, kannst du auch die Berechnung der Zufallszahl deines Gegners noch manipulieren, sodass er nur die Ziffern 1 bis 4 würfeln kann

Abb. 7–20 Unfaire Berechnung der gegnerischen Zufallszahl von 1 bis 4

Schummeln

Aber aufgepasst, wenn das Spiel zu unfair ist, wird dein Gegner Verdacht schöpfen und dann ganz sicher nie wieder mit dir spielen.

7.2 Tischbillard

Bei dieser Variante des Tischbillards geht es darum, die Spielkugel durch Schnipsen in die Löcher zu bekommen, die sich auf dem Spielfeld befinden. Dein Calliope mini ermittelt dabei, in welches Loch die Kugel gefallen ist, und je nach Loch gibt es Punkte, die auf dem Display angezeigt werden.

Abb. 7–21 Das fertige Tischbillard mit dem Calliope mini als Punktezähler

7.2.1 Materialien und Werkzeuge

Wie viele? Was Anmerkung
1 Calliope mini
1 Battery-Pack
2 Batterien (AAA) Um sicherzugehen, dass du die richtigen Batterien verwendest, schau auf dein Battery-Pack
1 USB-Kabel (Mini) Zum Anschließen des Minis an den Computer
1 Pappe (A3 oder größer) Das wird dein Spielbrett
4 Pappbecher
1 bis 4 Kreppklebeband/Washitape Ggf. in 4 verschiedenen Farben
Litze Ggf. in 5 verschiedenen Farben
1 Ggf. Entmanteler
1 Schere

Tab. 7–4 Die Materialienliste

7.2.2 Wie funktioniert Tischbillard?

Um das Tischbillard umzusetzen, ist es notwendig, dass du den Calliope mini programmierst und das Spielfeld aufbaust. Für die Programmierung werden Platzhalter und Logikverknüpfungen benötigt. Eine grundlegende Einführung in Platzhalter bekommst du zu Beginn von Kapitel 5. Die allgemeine Funktionsweise von Logikverknüpfungen wird in zu Anfang dieses Kapitels erklärt. Das Tischbillard-Projekt eignet sich gut dafür, beides besser zu verstehen und richtig einzusetzen.

Um zu überprüfen, ob die Billardkugel in eines der Löcher gefallen ist, werden die Pins als Eingabesensoren genutzt. Sie liefern immer dann einen Wert, wenn der Stromkreis über die Pins geschlossen wird. In diesem Projekt ist das der Fall, wenn die Billardkugel in eines der Löcher gefallen ist. Wenn du noch einmal schauen willst, wie das mit dem Stromkreis und den Pins genau funktioniert, dann schau noch einmal in Kapitel 3.

In diesem Projekt lernst du, wie du ein Tischbillard aufbauen kannst. Aber es gibt natürlich auch jede Menge andere Spiele, die du umsetzen kannst. Überleg dir zu Beginn, welches Spiel du aufbauen willst.

Und was ist mit Mini-Basketball?

Anstelle des Tischbillards kannst du dir eine Abwandlung des Spiels überlegen und zum Beispiel auch ein Tischbasketball aufbauen, ein Tischfußball oder ein Minigolf. Überleg dir, welches Spiel du gerne bauen willst. Deiner Fantasie sind keine Grenzen gesetzt.

Als Nächstes gilt es, die Regeln für das Spiel festzulegen. Das Tischbillard in diesem Projekt besteht aus einem Spielfeld mit vier Löchern, wobei jeder Treffer in ein Loch unterschiedlich gewertet wird: Je nachdem, in welches Loch die Spielkugel fällt, gibt es entweder einen Punkt, zwei Punkte, drei Punkte oder auch zwei Punkte Abzug.

7.2.3 Die Programmierung

Bevor du mit dem Projekt startest:

Beim Tischbillard prüft der Calliope mini, in welches Loch die Spielkugel gefallen ist, und zählt die entsprechende Punktezahl zum Spielstand dazu bzw. zieht die Punkte ab. Der aktuelle Punktestand wird auf dem Display angezeigt. Um dies zu programmieren, benötigst du einen Platzhalter, in dem der aktuelle Punktestand gespeichert wird. Gib dem Platzhalter einen Namen, der für dich eindeutig ist, z. B. »punkte«.

Abb. 7–22 Erstellen des neuen Platzhalters »punkte«

Zu Beginn des Spiels wird der Platzhalter »punkte« auf 0 gesetzt und im Display angezeigt:

Abb. 7–23 Der Codeblock setzt den Platzhalter »punkte« zu Beginn jedes Spiels auf 0

Jetzt wird die Punktevergabe für die jeweiligen Pins festgelegt:

Pin Punktzahl
Pin 0 1 Punkt
Pin 1 2 Punkte
Pin 2 3 Punkte
Pin 3 - 2 Punkte

Tab. 7–5 Punktevergabe

Im Editor benötigst du jetzt den Logikblock »wenn – dann« um die Zuordnung der Pins zu den Punktezahlen umzusetzen. Der Code sieht dann so aus.

Abb. 7–24 Mit diesem Code wird die Zuweisung der Punktezahl zum jeweiligen Pin festgelegt

Der Minus-Pin wird nicht explizit programmiert. Er ist vielmehr Voraussetzung für die Funktionsweise der Pins: Nur wenn der Minus-Pin und ein weiterer Pin gleichzeitig kontaktiert werden, ist der Stromkreis geschlossen und ein Signal wird übermittelt.

Pin-Belegung bei der Programmierung testen

Die Funktionsweise der Pin-Belegung lässt sich nicht im Simulationsmodus des Browsers testen. Hierfür musst du das Programm immer auf den Calliope mini überspielen. Um dir die Arbeit zu erleichtern, kannst du zum Testen des Programmcodes im Simulator z. B. den Funktionsblock wählen »Knopf A ist gedrückt«. Wenn du mit der Funktionsweise zufrieden bist, tauschst du zum Schluss den Eingabeblock wieder mit »Pin 0 ist gedrückt« aus, um es dann auf deinen Mini zu überspielen.

Bisher ist auf dem Calliope mini aber noch nichts zu sehen. Um den Punktestand auf dem Display anzuzeigen, brauchst du den Programmierblock »Zeige Nummer«, in den du den Platzhalter einfügst, damit der aktuelle Punktestand dargestellt wird. Zudem siehst du, dass eine Verzögerung von 5 Sekunden (also 5000 Millisekunden) im Code eingefügt wurde. Das ist die Zeit, die der Mini wartet, bevor er erneut Punkte von diesem Pin, also diesem Loch zählt. Das ist also die Zeit, die du zur Verfügung hast, um die Spielkugel aus dem Loch zu holen. Die Zeitdauer ist frei gewählt, und du kannst sie nach eigenem Ermessen anpassen.

Abb. 7–25 Erweiterung des Programmiercodes um die Anzeige der Punkte und einer Pause zum Herausholen der Spielkugel aus dem jeweiligen Spielloch

Diese Programmierblöcke gilt es nun für die anderen drei Pins zu ergänzen. Der vollständige Code innerhalb der Dauerschleife sieht so aus:

Abb. 7–26 Der vollständige Programmcode für die Dauerschleife

Um das Spiel jederzeit wieder von Neuem starten lassen zu können, kannst du noch eine Funktion auf Knopf A hinzufügen, die den Punktestand auf 0 setzt, wenn der Knopf gedrückt wird.

Abb. 7–27 Durch das Drücken von Knopf A wird der Punktestand auf 0 gesetzt und das Spiel startet von Neuem

Damit ist die Programmierung für den Mini abgeschlossen. Diesen Code kannst du jetzt auf dein Calliope-Board laden und mit dem Aufbau des Spielfeldes beginnen.

7.2.4 Der Aufbau des Spiels

Für den Aufbau des Tischbillards beginnst du mit der Grundfläche (A3-Pappe) und überlegst zunächst, wo sich die Spielfeldlöcher befinden sollen.

Spielgeschick ist gefordert

Um den Schwierigkeitsgrad etwas zu erhöhen, kannst du das Spielfeldloch mit der höchsten Punktzahl so positionieren, dass es sich hinter dem Loch mit dem Punktabzug befindet. Welche Möglichkeiten fallen dir noch ein, um Hindernisse oder Schwierigkeiten in das Spielfeld einzubauen, die dein spielerisches Geschick erfordern?

Abb. 7–28 Der Durchmesser der Löcher, die du ausschneidest, muss etwas kleiner als der Durchmesser der Becher sein.

Beim Zeichnen und Ausschneiden der Lö­cher ist es wichtig, darauf zu achten, den Durchmesser etwas kleiner als die Becher zu zeichnen, so dass sie gut aufliegen und die Becher nicht durchrutschen.

Um die vier Löcher besser auseinanderhalten zu können, kannst du sie farbig markieren. Hierfür eignet sich Kreppband bzw. Washitape in verschiedenen Farben.

Pin Punktzahl Farbzuordnung
Pin 0 1 Punkt blau
Pin 1 2 Punkte grau
Pin 2 3 Punkte goldbraun
Pin 3 - 2 Punkte gelb
Minus-Pin schwarz

Abb. 7–29 Farbige Markierung der Spielfeldlöcher mit Washitape

Nun gilt es, den Calliope mini in das Spiel zu integrieren. Hierfür verbindest du die einzelnen Pins des Boards mit der Litze, wofür du sie zunächst entmanteln musst.

Was ist Litze und warum muss man sie entmanteln?

Unter »Litze« versteht man dünnen Draht, der ggf. eine Isolierung besitzt, d. h., er ist von einer farbigen Schicht aus Kunststoff umschlossen: dem Mantel. Dies ist sinnvoll, damit nicht unabsichtlich ein Kontakt entsteht, falls sich die einzelnen Litzen in deinem Spielfeldaufbau zufällig berühren. Damit aber eine Verbindung zwischen dem Pin des Minis und der Litze hergestellt werden kann, muss die Isolierung entfernt, also die Litze entmantelt werden. Am besten eignet sich hierfür ein Entmanteler. Solltest du keinen zur Hand haben, kannst du hierfür je nach Festigkeit des Kunststoffs auch ein kleines Messer oder die Schere nehmen und damit den Mantel vorsichtig einritzen, sodass du ihn dann abziehen kannst. Hierbei musst du aufpassen, dass du nicht den Draht mit erwischst und komplett durchtrennst. Manchmal lässt sich der Mantel der Litze auch leicht mit dem Fingernagel entfernen.

Abb. 7–30 Die Litze mit einem freien, entmantelten Ende, das mit dem Minus-Pin des Minis verbunden wird.

Dabei kannst du dieselbe Farbcodierung verwenden wie bei den Torlöchern (also blaue Litze für Pin 0, schwarze Litze für den Minus-Pin usw.).

Abb. 7–31 An den Pins des Minis wird jetzt die Litze befestigt. Die verschiedenen Farben der Litze helfen dabei, sie gut auseinanderzuhalten.

Das zweite Ende der Litze verbindest du mit dem jeweils dazugehörigen farbigen Spielfeldloch (also blaue Litze mit blauem Loch usw.). Hierfür stichst du ein kleines Loch in den Unterboden des Tor-Bechers, um die Litze hindurchzufädeln. Damit der Draht nicht gleich wieder herausrutscht, klebst du den Draht mit etwas Kreppband am Becherboden fest.

Abb. 7–32 Das andere Ende der Litze wird durch den Becher gefädelt.

Abb. 7–33 Schematische Darstellung der Verbindungen

Jetzt vergrößerst du die Kontaktfläche des Tor-Bechers auf der Innenseite, indem du ein Stück Alufolie auf dem Becherboden anbringst. Damit die Alufolie besser hält, kannst du sie mit doppelseitigem Klebeband anheften. Achte dabei darauf, dass sich der Draht über dem Klebestreifen befindet und nicht darunter, damit ein guter Kontakt zwischen Alufolie und Litze bestehen bleibt. Diesen Schritt wiederholst du jetzt auch für die anderen drei Tor-Becher.

Abb. 7–34 Auf den Innenseiten der Tor-Becher wird Alufolie angebracht.

Das zweite Ende der schwarzen Litze wird nicht mit einem Tor-Becher verbunden, sondern mit der Spielkugel. Hierfür formst du eine Kugel aus Alufolie, die mit der Litze verbunden sein muss. Am besten klappt das, wenn du etwas Alufolie um die Litze wickelst und dann immer mehr Folie herumwickelst, bis ein Ball entsteht. So ist deine Litze rundum gut mit Alufolie umschlossen. Wenn du nun die Spielkugel in die Becher hältst, zeigt der Mini dir die Punkte an. Teste alle Spielfeldbecher, ob sie die gewünschte Punktzahl anzeigen.

Abb. 7–35 Beim Berühren der Spielkugel mit dem Becherinnenboden werden auf dem Calliope mini die Punkte angezeigt.

Zum Schluss klebst du noch die Becher unter dem Spielfeld an. Jetzt ist dein Aufbau fertig und das Spielen kann beginnen.

7.2.5 Erweiterung des Programms

In diesem Beispiel ist das Tischbillard so aufgebaut, dass es vier Tore mit unterschiedlicher Punktzahl und eine Spielkugel gibt. Wenn du magst, kannst du auch noch mehr Spielkugeln ins Spiel bringen. Dafür verbindest du einfach jede zusätzliche Spielkugel ebenfalls mit dem Minus-Pin.

Alternativ kannst du das Spiel auch so aufbauen, dass die Kugeln unterschiedliche Punktezahlen bedeuten. Hierfür verbindest du die Spielkugeln mit den Pins 0–3 und die alle Tore mit dem Minus-Pin.

Fallen dir noch weitere Spielideen ein? Eventuell willst du auch gern eine Minigolf-Anlage nachbauen oder lieber ein Tischbasketball-Spiel? Probier es einfach mal aus!

Abb. 7–36 Viel Spaß beim Spielen!