Python Gaming: Code dein Spiel

Das Verständnis zur Grundidee und zum Ablauf der Kurse in unserem yourschool-Format ist notwendige Voraussetzung zur Durchführung eines Kurses. Unsicher?

Python Gaming: Code dein Spiel

Entwicklungsumgebung

Wir arbeiten während dem Kurs mit dem Online-Editor Repl.it:

https://repl.it
Die Logindaten für den jeweiligen Account bekommt ihr von den Team-Inspirern im Kurs. Aus organisatorischen Gründen können wir die Accounts nicht vor Kursbeginn zur Verfügung stellen.
Wie Replit funktioniert, findest du hier in unserem Inspirer-Handbuch.

Kennenlernen

~5 Minuten

Vorstellungsrunde mit Programmiererfahrung/Motivation

Ihr stellt euch vor und erzählt, wie ihr zur Hacker School und zum Coden gekommen seid.
Nun die Teilnehmer:

  • Wie heißt Du? (Achtet darauf, dass die Kinder sich nur mit Vornamen vorstellen – Datenschutz.)
  • Warum bist Du hier?
  • Hast Du schon mal programmiert?
  • Was willst Du lernen?
Vorstellung interaktiver gestalten? (!Klick mich an!)

In unserem Inspirer Handbuch findet ihr
weitere Spielideen.
Wenn Ihr ONLINE diese Vorstellung etwas interaktiver gestalten möchtest, empfehlen wir das Spiel “Alle, die”, was im folgenden erklärt wird:

Spielidee und Ziel

Alle Schüler*innen machen ihre Kamera an und kommen locker und leicht ins Gespräch mit den jeweiligen Inspirer.
Außerdem: Erste Diagnose, was die Schüler*innen können.

Ablauf

  1. Fordert die Schüler*innen auf die Kamera anzumachen und checke, ob alle Kameras funktionieren
  2. Fordert die Schüler*innen auf die Kamera mit dem Finger zu verdecken oder sie aus zu machen
  3. Stellt eine “Alle, die”-Frage (z.B: “Alle, die schon einmal programmiert haben?” oder “Alle, die Sport in der Freizeit machen?”)
  4. Alle, die sich angesprochen fühlen, nehmen ihren Finger von der Kamera oder machen die Kamera an
  5. Stellt kurze Rückfragen und kommt ins Gespräch
  6. Stellt eine zweite Frage
  7. Stellt kurze Rückfragen und kommt ins Gespräch
  8. usw.

Nutzt den Chat, wenn die Kameras deaktiviert sind. Viele Schüler*innen kennen das aus dem Gamingbereich.
Zum Beispiel folgendermaßen:

  • “Tippt in den Chat: 1 = Zustimmung , 2 = Ablehnung”

Wenn Ihr den Chat nicht nutzen möchtet, könnt ihr auch die Reaktionen in Zoom verwenden (z.B. Daumen hoch Emoji für alle, die die Kamera deaktiviert haben.)

Sammlung von möglichen Fragen (!Klick mich an!)

Diese Sammlung ist frei erweiterbar

IT/Programmieren

  • Wer hat schon mal programmiert?
  • Wer kann sich vorstellen etwas mit Programmieren und IT zu machen?

Hobbies

  • Wer von Euch macht Sport in der Freizeit?
  • Wer spielt ein Instrument?
  • Wer spielt Computerspiele?
  • Wer spielt Handyspiele?

Lustiges

  • Wer hat eine Schuhgröße größer als 35?

Programmieren Teil 1: WE INSPIRE

~75 Minuten

1. Konsolenausgabe

  • Was ist die Konsole?
  • Was ist “print”?
  • Wieso muss ich den Text für print() in die Klammern setzen?
  • Wieso ist der Text in Anführungszeichen?
Hier findet Ihr Formulierungshilfen.
  • Was ist die Konsole?
    • Die Konsole nutzen wir, um das Ergebnis unseres Codes auf dem Bildschirm sehen zu können. Das ist sozusagen der Ort, an dem wir als Nutzer*innen mit dem Computer "sprechen" und interagieren.
  • Was ist “print”?
    • print ist ein Befehl an den Computer. Dieser Befehl ermöglicht es uns Buchstaben oder Zahlen auf der Konsole auszugeben oder zu drucken. Print ist englisch für drucken.
  • Wieso muss ich den Text für print() in die Klammern setzen?
    • Die Klammern grenzen den Bereich ein, der ausgegeben werden soll, also alles, was in den Klammern ist, soll auch ausgegeben/gedruckt werden.
  • Wieso ist der Text in Anführungszeichen?
    • Immer wenn wir dem Computer sagen wollen, dass etwas “Text” bzw. eine Zeichenkette ist, müssen wir Anführungszeichen nutzen. Ob ihr doppelte "..." oder einfache '...' nutzt ist egal.

Programmieraufgabe

  1. Probiert es selbst aus und ändert den Text.
  2. 1
    2
    print("Hallo Welt!")
    print("Schön, dass Ihr da seid!")
  3. Optionale: Erweiterungen
  4. Fügt zu dem oben stehenden Code einen Smiley aus der Webseite Emojis hinzu und lasst ihn auf dem Bildschirm erscheinen.

2. Variablen & Input

  • Was ist eine Variable?
  • Wie nutzen wir Variablen?
  • Was ist der “input”-Befehl?
1
2
name = "Theo"
print(name)
1
2
name = input("Wie heißt du? ")
print(name)
Hier findet Ihr Formulierungshilfen. (!Klick mich an!)
  • Was ist eine Variable?
    • Eine Variable ist wie ein Behälter oder eine Box zu verstehen. Diese speichert für uns einen bestimmten Wert bzw. irgendetwas ab. Was das ist, entscheiden wir als Nutzer*in frei. Diesen Wert merkt sich der Computer dann und wir können den Wert an einer späteren Stelle wieder abrufen.
  • Wie nutzen wir Variablen?
    • Sie wird verwendet, um Daten im Programm zu speichern und später darauf zuzugreifen oder sie zu verarbeiten.
  • Was ist der “input”-Befehl?
    • Der "input"-Befehl ist eine Möglichkeit für den Benutzer eine Eingabe in der Konsole zu tätigen, sozusagen mit dem Computer zu "sprechen".

Vertiefung

  • Leerzeichen und/oder Zeilenumbruch (\n) ans Ende von Input hinzufügen

Programmieraufgabe

Bittet mit Hilfe eines Input-Befehls eure Nutzer*innen einen Benutzernamen einzugeben. Dieser soll in einer Variable gespeichert werden. Anschließend könnt ihr den Benutzernamen in einem Print-Befehl wieder ausgeben.

1
2
name = input("Gib einen Benutzernamen ein: ")
print("Dein Benutzername lautet: " + name)

Wenn Schüler*innen schon fertig sind, bittet sie die input()-Frage zu ändern, bspw. zur Frage nach dem Alter oder etwas Vergleichbarem.

Denkt dabei immer daran: Genug Zeit zum Ausprobieren lassen!

3. Bedingungen (if, else, elif)

  • Was ist eine Bedingung?
  • Was macht “if”? Was macht “else”?
  • Was macht “elif” ?
Hier findet Ihr Formulierungshilfen.
  • Was ist eine Bedingung?
    • Eine Bedingung ist etwas, das entweder “wahr” oder “falsch” sein kann. Ihr könnt das mit einer Frage vergleichen. Wenn die Frage "wahr" ist, dann wird eine bestimmte Aktion ausgeführt, wenn sie "falsch" wird eine andere Aktion oder ein anderer Teil des Codes ausgeführt.
  • Was macht “if”? Was macht “else”?
    • "if" ermöglicht es uns, eine Bedingung zu überprüfen und entsprechend zu handeln, während "else" die Alternative liefert, die ausgeführt wird, wenn die Bedingung nicht erfüllt ist. Real Life Beispiel: "Wenn (if) ich 18 bin, darf ich alleine Autofahren, ansonsten (else) eben nicht.” Hier wieder den Bezug zum Englischen herstellen ;)
  • Was macht “elif” ?
    • "elif" gibt dir die Möglichkeit, weitere Bedingungen hinzuzufügen, die überprüft werden sollen, wenn die Bedingungen der "if"-Anweisung nicht erfüllt sind.

Programmieraufgabe

Teilt euren Bildschirm und wagt euch zu dem Code weiter unten vor.

Version 1 (einfachere Version ohne elif)

1
2
3
4
5
pw = input("Gib mir ein Passwort ")
if pw == "HackerSchool": print("Das Passwort war korrekt, du darfst eintreten.")
else: print("inkorrektes Passwort. Versuche es nochmal.")

Version 2 (schwerere Version mit elif)

1
2
3
4
5
6
7
8
pw = input("Gib mir ein Passwort ")
if pw == "HackerSchool": print("Das Passwort war korrekt, du darfst eintreten.")
elif pw == "SecretKey": print("Herzlichen Glückwunsch du hast den Secret Key gefunden und erhältst zusätzlich 100 Euro")
else: print("inkorrektes Passwort. Versuche es nochmal.")

4. Abschluss Teil 1 - WE INSPIRE

Gehe nun spätestens auf individuelle Probleme und Fragen deiner Kleingruppe ein, wenn ihr dies bislang noch nicht getan hast.

Gehe dazu durch die jeweiligen Projekte der Schüler*innen

Tipp: Hier ist ein guter Moment durch die Replits der Teilnehmenden zu gucken um Hilfe zu leisten.

Vergesse dabei nicht die Schüler*innen zu loben und aufzuzeigen, was sie schon gelernt haben!

Die Schüler*innen scheinen nicht so motiviert zu sein?
Versuche ein persönliches Gespräch zu starten.
Denke an das Kennenlernen am Anfang (beim Spiel "Alle,die" oder ähnlichem) und spreche sie proaktiv auf Themen an. So baut ihr Nähe und Vertrauen zu ihnen auf.
Vergiss dabei nie: Eine gute und positive Beziehung zu den Schüler*innen zu haben ist das Wichtigste für einen erfolgreichen Kurs. Das heißt, nimm dir unbedingt die Zeit auch persönliche Sachen von dir zu teilen, um nahbarer zu werden. Dann läuft das Programmieren und Inspirieren wie von alleine ;)
Das Ziel eines Hacker School Kurses ist es nicht, das Konzept stur von Anfang bis Ende durchzuarbeiten und unbedingt alles fertig zu bekommen.

Programmieren Teil 2: INSPIRE ME

~75 Minuten

Ziel definieren/ Projektauswahl

Jetzt kommt der proaktive "INSPIRE ME"-Teil aus Sicht der Schülerinnen und Schüler. Nun sind diese an der Reihe und inspirieren sozusagen dich als Inspir*ess!

Die Schüler*innen entscheiden nun eigenständig, welches Spiel sie alleine oder in der Kleingruppe umsetzen möchten.
Wählt dazu eines oder zwei der folgenden vier Spiele aus und zeigt sie den Schülerinnen und Schülern (spielt sie kurz vor). Wählt dabei den entsprechenden Schwierigkeitsgrad, je nachdem, wie sich die Gruppe im "WE INSPIRE"-Teil angestellt hat.

Ich weiß nicht welches Spiel ich wählen soll? (!Klick mich an!)
Generell gilt, dass für die meisten Klassen nur das "Einstiegslevel" in Frage kommt --> heißt Zahlenraten oder etwas Vergleichbares. Auch dieses Spiel ist teilweise noch zu schwierig für den Einstieg. Bleibt dann einfach bei einfachen "IF, ELSE, ELIF"-Abfragen und lasst die Schüler*innen damit rumspielen und ausprobieren und ermutigt sie, genau dies zu tun!
Schwierigkeiten
Level: * = Einstiegslevel | ** = Grundkenntnisse | *** = Fortgeschrittenes Level

Gerne könnt ihr auch eure eigenen vergleichbaren Spiele nutzen.

ACHTUNG: Je nach Schwierigkeitsgrad wird noch weiteres Vorwissen, neben Variablen und Bedingungen benötigt!

1. Zahlenraten *

ACHTUNG: Hierfür muss noch erklärt werden:

  • import random
    • import random: Das random-Modul ist Teil der Python-Standardbibliothek und bietet eine Reihe von Funktionen zur Generierung von Zufallszahlen.
    • zufällige_zahl = random.randint(1,100): Dieser Code generiert eine zufällige Ganze Zahl zwischen 1 und 100 und weist sie der Variablen zufällige_zahl zu.
  • while-Schleife
    • while: Eine While-Schleife ist eine spezielle Anweisung in einem Computerprogramm, die dazu verwendet wird, eine bestimmte Aufgabe immer wieder auszuführen, solange eine bestimmte Bedingung erfüllt ist. Was eine Bedingung ist hatten wir ja im ersten Teil ;)

Schritt für Schritt (Erklärung)

  1. Zuerst importiert man das Modul random in unser Programm.
  2. Wir erstellen eine Zufallszahl zwischen 1 und 100 mit der Funktion randint aus dem Modul random und speichern sie in der Variable zufällige_zahl.
  3. Wir definieren die maximale Anzahl an Versuchen, die ein Benutzer hat, um die Zufallszahl zu erraten, als max_versuche. In diesem Fall ist es 5.
  4. Wir starten eine while-Schleife, die so lange läuft, bis der Benutzer entweder die richtige Zahl geraten hat oder die maximale Anzahl an Versuchen erreicht wurde.
  5. Innerhalb der Schleife wird der Benutzer aufgefordert, eine Zahl zwischen 1 und 100 zu erraten. Die input-Funktion wird verwendet, um die Benutzereingabe als Integer zu lesen und in der Variable versuch zu speichern.
  6. Als nächstes überprüfen wir den vom Benutzer geratenen Wert mit der Zufallszahl. Wenn der geratene Wert größer als die Zufallszahl ist, wird eine Meldung ausgegeben, die besagt, dass die geratene Zahl zu hoch ist. Wenn der geratene Wert kleiner als die Zufallszahl ist, wird eine Meldung ausgegeben, die besagt, dass die geratene Zahl zu niedrig ist. Wenn der geratene Wert gleich der Zufallszahl ist, wird eine Meldung ausgegeben, die besagt, dass der Benutzer die Zahl erraten hat, und die Schleife wird mit break beendet.
  7. Nach jedem Versuch wird die Variable max_versuche um 1 verringert.
  8. Wenn der Benutzer die maximale Anzahl an Versuchen erreicht hat, wird eine Meldung ausgegeben, die besagt, dass er verloren hat.
  9. Das Programm endet mit der Ausgabe einer Abschlussmeldung.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21

import random

zufällige_zahl = random.randint(1, 100)
max_versuche = 5

while True: if max_versuche == 0: print("Du hast die Maximale Anzahl an Versuchen erreicht. :/") break versuch = int(input("Rate eine Zahl zwischen 1 und 100: ")) #kann man auch mit if elif else machen if versuch > zufällige_zahl: print("Deine Zahl ist zu hoch") elif versuch < zufällige_zahl: print("Deine Zahl ist zu niedrig") elif versuch == zufällige_zahl: print("Yay du hast die Zahl eraten :) ") break max_versuche -= 1

print("Bis zum nächsten Mal")

2. Schere,Stein oder Papier **

Hier ist das fertige Projekt
ACHTUNG: Hierfür muss noch erklärt werden:

  • import random:
    Das random-Modul ist Teil der Python-Standardbibliothek und bietet eine Reihe von Funktionen zur Generierung von Zufallszahlen.
  • rand = random.randint(1,3):
    Dieser Code generiert eine zufällige Ganze Zahl zwischen 1 und 3 und weist sie der Variablen rand zu.
  • while:
    Eine While-Schleife ist eine spezielle Anweisung in einem Computerprogramm, die dazu verwendet wird, eine bestimmte Aufgabe immer wieder auszuführen, solange eine bestimmte Bedingung erfüllt ist
mögliche Erweiterungen
  • falsche Eingabe
  • erweitertes Regelwerk (Echse, Spock oder Feuer, Wasser und Brunnen)
  • Klein- & Großschreibung vereinheitlichen
  • Computerwahl in eine Funktion auslagern

Schritt für Schritt (Erklärung)

  1. Importiert das Modul random (import random), um den Zufallsgenerator zu nutzen.
  2. Initialisiere die Variablen punkte und comppunkte auf 0.
  3. Erstelle eine Endlosschleife while True:
  4. Generiere mit Hilfe von rand = random.randint(1,3) eine Zufallszahl zwischen 1 und 3, um die Wahl des Computers zu treffen.
  5. Ordne dem Computer je nach Zufallszahl die Option "Schere", "Stein" oder "Papier" zu.
  6. Fordere den Spieler auf, seine Wahl zu treffen und speichere die Eingabe in der Variable "spieler".
  7. Gib auf dem Bildschirm aus, welche Wahl der Computer getroffen hat.
  8. Überprüfe, wer in dieser Runde gewonnen hat, indem ihr die Optionen des Computers und des Spielers vergleicht.
  9. Wenn es ein Unentschieden gibt, gib "Unentschieden" auf dem Bildschirm aus.
  10. Wenn der Spieler gewinnt, gib "Du hast einen Punkt geholt" (oder ähnliches, hier dürfen die Kinder gerne kreativ werden) auf dem Bildschirm aus und erhöhe die Variable "punkte" um 1.
  11. Wenn der Computer gewinnt, gib "Dein Gegner hat einen Punkt geholt" auf dem Bildschirm aus und erhöhe die Variable "comppunkte" um 1.
  12. Gib die aktuellen Punkte des Spielers und des Computers auf dem Bildschirm aus.
  13. Überprüfe, ob entweder der Spieler oder der Computer drei Punkte erreicht hat. Wenn ja, gib eine Nachricht aus, die den Sieger angibt.
  14. Frage den Spieler, ob er eine Revanche spielen möchte. Wenn ja, setze die Punkte beider Spieler auf 0 zurück und beginne eine neue Runde. Andernfalls beende das Programm mit "break".
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

#Vorarbeit
import random

punkte = 0
comppunkte = 0

while True:

#Zufallsgenerator für die KI rand = random.randint(1,3) if rand == 1: comp = "Schere" if rand == 2: comp = "Stein" if rand == 3: comp = "Papier" spieler = input("Schere, Stein, Papier? ") print("Der Computer wählt " + comp) #Schere, Stein, Papier - Regel (wie gewonnen/verloren/unentschieden) if comp == spieler: print("Unentschieden") if spieler == "Schere" and comp == "Papier": print("Du hast einen Punkt geholt") punkte = punkte + 1 if spieler == "Stein" and comp == "Schere": print("Du hast einen Punkt geholt") punkte = punkte + 1 if spieler == "Papier" and comp == "Stein": print("Du hast einen Punkt geholt") punkte = punkte + 1 if spieler == "Schere" and comp == "Stein": print("Dein Gegner hat einen Punkt geholt") comppunkte = comppunkte + 1 if spieler == "Stein" and comp == "Papier": print("Dein Gegner hat einen Punkt geholt") comppunkte = comppunkte + 1 if spieler == "Papier" and comp == "Schere": print("Dein Gegner hat einen Punkt geholt") comppunkte = comppunkte + 1 print(punkte, ":", comppunkte) #Endresultat if punkte == 3: print("DU HAST GEWONNEN!") Revanche = input("Möchtest du nochmal spielen? ") if Revanche == "Ja": punkte = 0 comppunkte = 0 else: break if comppunkte == 3: print("DU HAST VERLOREN!") Revanche = input("Möchtest du nochmal spielen? ") if Revanche == "Ja": punkte = 0 comppunkte = 0 else: break

3. Taschenrechner **

ACHTUNG: Hierfür muss noch erklärt werden:

  • Funktionen:
    Eine Funktion ermöglicht es, bestimmte Aufgaben auszulagern und den Code übersichtlicher und modularer zu gestalten.

    Eine Funktion wird in Python definiert, indem der Begriff "def" gefolgt von einem Funktionsnamen und in Klammern die Parameter der Funktion angegeben werden: def <name>(*params): <body>

    Der Code, der innerhalb der Funktion ausgeführt werden soll, wird in einem eingerückten Block geschrieben.

    1
    2
    def plus(x,y):
        return x+y
  • while:
    Eine While-Schleife ist eine spezielle Anweisung in einem Computerprogramm, die dazu verwendet wird, eine bestimmte Aufgabe immer wieder auszuführen, solange eine bestimmte Bedingung erfüllt ist
mögliche Erweiterungen
  • weitere Rechenarten hinzufügen
  • mit mehr Zahlen rechnen

Schritt für Schritt (Erklärung)

  1. Die Code-Datei beginnt mit der Definition von vier Funktionen: "plus", "minus", "mal" und "geteilt", die jeweils zwei Argumente akzeptieren und das Ergebnis der entsprechenden Operation zurückgeben.
  2. Eine Textausgabe gibt dem Benutzer eine Auswahl von vier verschiedenen mathematischen Operationen: Addition, Subtraktion, Multiplikation und Division.
  3. Eine While-Schleife wird gestartet, die ständig läuft, bis sie manuell von einem Benutzer unterbrochen wird.
  4. Der Benutzer wird aufgefordert, einen der vier Operatoren auszuwählen, indem er die entsprechende Zahl eingibt.
  5. Die Benutzereingabe wird überprüft, um sicherzustellen, dass sie gültig ist, d.h. dass sie eine der vier zulässigen Zahlen ist.
  6. Der Benutzer wird aufgefordert, zwei Zahlen einzugeben, die er oder sie miteinander kombinieren möchte.
  7. Je nachdem, welcher Operator ausgewählt wurde, wird die entsprechende mathematische Funktion auf die beiden eingegebenen Zahlen angewendet und das Ergebnis wird auf der Konsole ausgegeben.
  8. Der Benutzer wird aufgefordert, zu entscheiden, ob er eine weitere Berechnung durchführen oder das Programm beenden möchte.
  9. Wenn der Benutzer das Programm beenden möchte, wird die Schleife durch ein "break"-Statement beendet.
  10. Wenn der Benutzer eine ungültige Auswahl trifft (z.B. eine andere Zahl als 1, 2, 3 oder 4 eingibt), wird eine Fehlermeldung ausgegeben.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

def plus(x,y): return x+y
def minus(x, y): return x-y
def mal(x, y): return x*y
def geteilt(x, y): return x/y

print("Wähle")
print("1.Addition")
print("2.Subtraktion")
print("3.Multiplikation")
print("4.Division")

while True: auswahl=input("Gib mir ein Operator (1/2/3/4): ") if auswahl in ('1','2','3','4'): num1=float(input("Gib mir deine erste Zahl: ")) num2=float(input("Gib mir deine zweite Zahl: ")) if auswahl == '1': print(num1,"+",num2,"=",plus(num1,num2)) if auswahl == '2': print(num1, "-", num2, "=", minus(num1, num2)) if auswahl == '3': print(num1, "*", num2, "=", mal(num1, num2)) if auswahl == '4': print(num1, "/", num2, "=", geteilt(num1, num2)) next_rechnung=input("Willst du noch einmal rechnen? (ja/nein)") if next_rechnung== "nein": break else: print("SyntaxError: Invalid Input")

4. Tic,Tac,Toe ***

ACHTUNG: Hierfür muss noch erklärt werden:

  • while:
    Eine While-Schleife ist eine spezielle Anweisung in einem Computerprogramm, die dazu verwendet wird, eine bestimmte Aufgabe immer wieder auszuführen, solange eine bestimmte Bedingung erfüllt ist
  • import os (operating system):
    eine module durch welches man unter anderem System Befehle geben kann
  • boolean (Datentyp):
    Boolean ist ein Datentyp (sowie Zahlen), der entweder wahr oder falsch sein kann. Er hat genau zwei mögliche Werte: Wahr oder Falsch.
  • Funktionen:
    Eine Funktion ermöglicht es, bestimmte Aufgaben auszulagern und den Code übersichtlicher und modularer zu gestalten.

    Eine Funktion wird in Python definiert, indem der Begriff "def" gefolgt von einem Funktionsnamen und in Klammern die Parameter der Funktion angegeben werden: def <name>(*params): <body>

    Der Code, der innerhalb der Funktion ausgeführt werden soll, wird in einem eingerückten Block geschrieben.

    1
    2
    def plus(x,y):
        return x+y

Schritt für Schritt (Erklärung)

  1. Zuerst importiert man das Modul os in das Programm.
  2. Wir definieren die Anzahl der Reihen und Spalten unseres Spielfeldes und erstellen ein 3x3-Spielfeld als Liste von Listen in der Variable spielfeld. Wir setzen auch die Variable player auf False, um den ersten Spieler als "X" festzulegen.
  3. Wir definieren eine Funktion checkReihe, die überprüft, ob alle Werte in einer bestimmten Reihe des Spielfelds dem aktuellen Spieler entsprechen. Die Funktion gibt True zurück, wenn ja, und False, wenn nicht.
  4. Wir definieren eine Funktion checkSpalte, die überprüft, ob alle Werte in einer bestimmten Spalte des Spielfelds dem aktuellen Spieler entsprechen. Die Funktion gibt True zurück, wenn ja, und False, wenn nicht.
  5. Wir definieren eine Funktion gewonnen, die überprüft, ob der aktuelle Spieler das Spiel gewonnen hat, indem er checkReihe und checkSpalte auf alle Reihen und Spalten anwendet. Die Funktion gibt True zurück, wenn das Spiel gewonnen wurde, und False, wenn nicht.
  6. Wir definieren eine Funktion drawField, die das aktuelle Spielfeld als eine Reihe von horizontalen und vertikalen Linien mit den aktuellen Werten für jede Zelle ausgibt.
  7. Wir definieren eine Funktion checkInput, die überprüft, ob die Eingabe des Spielers für Reihe und Spalte innerhalb des Spielfelds liegt. Die Funktion gibt True zurück, wenn die Eingabe gültig ist, und False, wenn nicht.
  8. Wir definieren eine Funktion put, die die Eingabe des Spielers akzeptiert und das entsprechende Spielfeldfeld mit dem Symbol des aktuellen Spielers aktualisiert. Wenn das Feld bereits belegt ist, wird eine Fehlermeldung ausgegeben.
  9. Wir definieren eine Funktion print_winner_msg, die eine Nachricht ausgibt, die angibt, welcher Spieler das Spiel gewonnen hat.
  10. Wir rufen die Funktion drawField auf, um das Spielfeld zu initialisieren.
  11. Wir starten eine while-Schleife, die läuft, solange das Spiel nicht gewonnen ist oder das Spielfeld voll ist. Innerhalb dieser Schleife fordern wir den Benutzer auf, eine Reihe und Spalte für ihren Zug einzugeben.
  12. Wir überprüfen die Gültigkeit der Eingabe mit checkInput und rufen put auf, um das Spielfeld zu aktualisieren.
  13. Wir überprüfen, ob das Spiel gewonnen wurde, indem wir die Funktion gewonnen aufrufen. Wenn ja, geben wir eine Gewinnermeldung aus und brechen die Schleife ab.
  14. Wenn das Spiel nicht gewonnen wurde, wechseln wir den Spieler, indem wir die Variable player umkehren und rufen die Funktion drawField auf, um das aktualisierte Spielfeld auszugeben.
  15. Wenn das Spielfeld voll ist und kein Spieler gewonnen hat, geben wir eine Nachricht aus, die angibt, dass das Spiel unentschieden endete.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

import os

reihen = 3
spalten = 3
spielfeld = [[" "," "," "],[" "," "," "],[" ", " "," "]]
player = False

def checkReihe(index, player_str): reihe = spielfeld[index] for spalte in reihe: if spalte != player_str: return (False) return True

def checkSpalte(index, player_str): for reihe in spielfeld: if reihe[index] != player_str: return (False) return True

def gewonnen(): for reihe in range(3): if (checkReihe(reihe, " X ") or checkReihe(reihe, " O ")): return True for spalte in range(3): if (checkSpalte(spalte, " X ") or checkSpalte(spalte, " O ")): return True return False

def drawField(): print("\n") for reihe in spielfeld: print("-------------") print("|", end="") for spalte in reihe: print(spalte + "|", end="") print() print("-------------\n\n")

def checkInput(reihe, spalte): if (reihe > 3 or reihe < 1): print("Deine Reihen Nummer existiert nicht") return False if (spalte > 3 or spalte < 1): print("Deine Spalten Nummer existiert nicht") return False return True

def put(player, reihe, spalte): if (not player and spielfeld[reihe - 1][spalte - 1] == " "): spielfeld[reihe - 1][spalte - 1] = " X " elif (player and spielfeld[reihe - 1][spalte - 1] == " "): spielfeld[reihe - 1][spalte - 1] = " O " else: print("Da steht bereits etwas") return False return True

def print_winner_msg(player): if not player: print("PLAYER 1 HAT GEWONNEN") else: print("PLAYER 2 HAT GEWONNEN")

def get_input(msg, player): if not player: return (int(input("Player 1 " + msg))) else: return (int(input("Player 2 " + msg)))

while True: os.system("clear") drawField() try: reihe = get_input("Reihe: ", player) spalte = get_input("Spalte: ", player) except KeyboardInterrupt: break if not checkInput(reihe, spalte): continue if not put(player, reihe, spalte): continue if gewonnen(): print_winner_msg(player) break player = not player print("\nBis zum nächsten Mal")

Berufsorientierung und Feedback

~30 Minuten

In eurer Gruppe:
~5 min
  • Wenn ihr eurer Gruppe am Ende noch Feedback geben wollt, dann nehmt euch gerne jetzt Zeit dafür.
  • Fragt nach, ob jemand (in der Abschlussrunde im großen Plenum) vorstellen möchte, was ihr so gemacht habt.
Im Plenum:
~25 min
  • Die Teilnehmenden, die möchten, stellen ihre Projekte vor
  • Die Berufsorientierung wird von der Team Inspiress oder dem Team Inspirer eingeleitet
  • Hier erzählt ihr in einem Gespräch mit dem Team Inspirer oder der Team Inspiress davon, wie ihr in die IT gekommen seid und was euch daran Spaß macht.
  • In unserem Inspirer Handbuch findet ihr noch weitere Tipps für eine spannende Berufsorientierung
  • (Wenn erwünscht, bekommt der*die Lehrer*in kurz das Wort)
  • Feedbacklinks werden von den Team-Inspirern geteilt