Unterlagen Grundlagenfach
FS 2021, Allgemeines
- Grundlage für _alle Lektionen: Befehlsreferenz als docx oder pdf
- Download der Umgebung auf dieser Seite. Ausschau halten nach 'Download tigerjython2.jar'
- Weiterführende links: www.jython.ch oder www.tigerjython.ch (sehr viel weiterführend, sogar mit Spielentwicklung)
- Eine weitere Zusammenfassung als pdf, , Roger Keller, Kanti Aarau
- Aktuell noch zu weit, aber ... eine kleine pdf-Python-Übersicht
- Achtung: Hausaufgaben, Abschlussprüfung
Unterricht
Springe zur Aufgabe ....
- Teil 1: Einführung
- Teil 2: Unterprogramme
- Teil 3: Variablen und Kreise
- Teil 4: Selektion und Zufallszahlen
- Teil 5: Ein Glüksspiel programmieren
- Teil 6: Rekursion
- Teil 7: Maussteuerung
- Teil 8: dies + das
_____________________________________________________________________________________________
1. Doppelstunde: Intro
- Einführung, jython-Umgebung, Algorithmus Begriff, erste Befehel forward(), back(), left(), right(), repeat etc.
- Schüleraufgaben als docx oder pdf
- Lehrerlösungen (passwort erforderlich) [hier]
- zum Seitenanfang
_____________________________________________________________________________________________
2. Doppellektion: Unterprogramme
- Unterprogramme, Repetition diverse Befehle inklusive repeat
- Schüleraufgaben als docx oder pdf
- Lehrerlösungen (passwort erforderlich) [hier]
- zum Seitenanfang
_____________________________________________________________________________________________
3. Doppellektion: Variabeln, Repetition, Kreis zeichnen
- Schüleraufgaben als docx oder pdf
- Lehrerlösungen (passwort erforderlich) [hier]
- zum Seitenanfang
_____________________________________________________________________________________________
4. Doppellektion: Selektion und Zufallszahl
- Schüleraufgaben als docx oder pdf
- Lehrerlösungen (passwort erforderlich) [hier]
- zum Seitenanfang
Benötigter Code der Aufgabe 1.5, muss geringfügig ergänzt werden
######################################################################
from gturtle import * makeTurtle() hideTurtle() seite = 50 dotter = 18 def RundEckQuadrat(): penUp() forward(seite) right(90) penDown() repeat 4: forward(seite-15) rightArc(15,90) forward(seite-15) penUp() left(90) back(seite) def Wuerfel(Augenzahl): RundEckQuadrat() if Augenzahl%2 == 1: dot(dotter)
######################################################################
_____________________________________________________________________________________________
5. Doppellektion: Ein Glücksspiel programmieren
- Schüleraufgaben als docx oder pdf
- Lehrerlösungen (passwort erforderlich) [hier]
- zum Seitenanfang
Benötigter Code für Aufgabe 5.2, muss noch verändert / ergänzt werden
######################################################################
from gturtle import * from random import * makeTurtle() hideTurtle() def RundEckQuadrat(): s=100 penUp() left(90) forward(s/2) right(90) penDown() repeat 4: forward((s-30)/2) rightArc(15,90) forward((s-30)/2) penUp() right(90) forward(s/2) left(90) def Wuerfel(Augenzahl): RundEckQuadrat() if Augenzahl%2==1: dot(18) forward(30) # aktuell oben mitte left(90) forward(30) # oben links if Augenzahl>1: dot(18) left(90) forward(30) # mitte links if Augenzahl==6: dot(18) forward(30) # unten links if Augenzahl>3: dot(18) left(90) forward(60) # unten rechts if Augenzahl>1: dot(18) left(90) forward(30) # mitte rechts if Augenzahl==6: dot(18) forward(30) # oben rechts if Augenzahl>3: dot(18) left(90) forward(30) # oben mitte left(90) forward(30) right(180) # wieder im Zentrum, nach oben ausgerichtet def Wurf(): x = -300; y = 100 repeat 6: setPos(x, y) zufallsZahl = randint(1, 6) Wuerfel(zufallsZahl) x = x + 110 Wurf()
######################################################################
_________________________Aufgabe 5.1 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle() xpos = -150 repeat 3: setPos(xpos,0) zufallszahl = randint(1,6) Wuerfel(zufallszahl) xpos = xpos + 150
_________________________Aufgabe 5.2 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle() xpos = -150 glueckszahl = input("Auf welche Zahl möchtest du setzen ?") repeat 3: setPos(xpos,0) setPenColor("blue") zufallszahl = randint(1,6) print "zufallszahl = " , zufallszahl if zufallszahl == glueckszahl: setPenColor("red") Wuerfel(zufallszahl) xpos = xpos + 150
_________________________Aufgabe 5.3 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle() treffer = 0 glueckszahl = input("Auf welche Zahl möchtest du setzen ?") while treffer == 0: clean() xpos = -150 repeat 3: setPos(xpos,0) setPenColor("blue") zufallszahl = randint(1,6) if zufallszahl == glueckszahl: setPenColor("red") treffer = 1 Wuerfel(zufallszahl) xpos = xpos + 150 if treffer == 0: msgDlg("Nochmal") else: msgDlg("Fertig")
_________________________Aufgabe 5.4 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle() weitermachen = "j" while weitermachen=="j": glueckszahl = input("Auf welche Zahl möchtest du setzen ?") clean() treffer = 0 xpos = -150 repeat 3: setPos(xpos,0) setPenColor("blue") zufallszahl = randint(1,6) if zufallszahl == glueckszahl: setPenColor("red") treffer = 1 Wuerfel(zufallszahl) xpos = xpos + 150 weitermachen = input("Willst Du weitermachen ? (j/n)") while weitermachen !="j" and weitermachen !="n": msgDlg("Die Antwort muss j oder n sein!") weitermachen = input("Willst Du weitermachen ? (j/n)")
_________________________Aufgabe 5.5 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle() saldo = 5 weitermachen = "j" while weitermachen=="j": glueckszahl = input("Auf welche Zahl möchtest du setzen ?") clean() treffer = 0 xpos = -150 repeat 3: setPos(xpos,0) setPenColor("blue") zufallszahl = randint(1,6) if zufallszahl == glueckszahl: setPenColor("red") saldo = saldo + 1 treffer = 1 Wuerfel(zufallszahl) xpos = xpos + 150 if treffer == 0: saldo = saldo - 1 msgDlg("Dein Saldo beträgt "+str(saldo)+" Punkte") if saldo>0: weitermachen = input("Willst Du weitermachen ? (j/n)") while weitermachen !="j" and weitermachen !="n": msgDlg("Die Antwort muss j oder n sein!") weitermachen = input("Willst Du weitermachen ? (j/n)") else: weitermachen = "n" msgDlg("Dein Schlusssaldo beträgt "+str(saldo)+" Punkte")
_________________________Aufgabe 5.6 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle() saldo = 5 weitermachen = "j" while weitermachen == "j": glueckszahl = input("Auf welche Zahl möchtest du setzen ?") einsatz = 0 while einsatz == 0 or einsatz > saldo: einsatz = input("Wie hoch soll dein Einsatz sein?") clean() treffer = 0 xpos = -150 repeat 3: setPos(xpos,0) setPenColor("blue") zufallszahl = randint(1,6) if zufallszahl == glueckszahl: setPenColor("red") saldo = saldo + einsatz treffer = 1 Wuerfel(zufallszahl) xpos = xpos + 150 if treffer == 0: saldo = saldo - einsatz msgDlg("Dein Saldo beträgt "+str(saldo)+" Punkte") if saldo>0: weitermachen = input("Willst Du weitermachen ? (j/n)") while weitermachen !="j" and weitermachen !="n": msgDlg("Die Antwort muss j oder n sein!") weitermachen = input("Willst Du weitermachen ? (j/n)") else: weitermachen = "n" msgDlg("Dein Schlusssaldo beträgt "+str(saldo)+" Punkte")
_____________________________________________________________________________________________
6. Doppellektion: Rekursion
- Schüleraufgaben als docx oder pdf
- Lehrerlösungen (passwort erforderlich) [hier]
- zum Seitenanfang
_____________________________________________________________________________________________
7. Doppellektion: Mausevents und mehr, Teil I
- Schüleraufgaben als docx oder pdf
- Lehrerlösungen (passwort erforderlich) [hier]
- zum Seitenanfang
_____________________________________________________________________________________________
8. Doppellektion
Zahl pi berechnen, übernimm folgenden Code:------------------------------------------------------------------------ from gpanel import * from random import random makeGPanel(-0.3, 1.3, -0.3, 1.3) rectangle(0, 0, 1, 1) arc(1, 0, 90) hits = 0 n = input("Anzahl der Punkte (einige Tausend ...)") i = 0 # solange die Zahl n kleiner als i ist mache .... # wähle zwei zufällige Zahlen zwischen 0 und 1: x resp. y # Berechne den Abstand des Punktes x,y zum Ursprung 0,0 resp. # gucke (if else) ob der Abstand kleiner oder grösser als 1 ist # - wenn kleiner als 1: man befindet sich innerhalb des Kreises # erhöhe den Wert hits um 1 und setze die Farbe auf rot # - andernfalls setze die Farbe auf grün # Stelle den punkt innnerhalb der gpannels mit point(x,y) dar # Wenn der loop durch ist, so berechne pi mit "pi = 4 * hits / n" # und gib den Wert auf der konsole aus: print("Result: pi = " + str(pi)) # ------------------------------------------------------------------------
- game of life zeigen [link 1] , [link 2]
- game of life, Film, [youtube] oder [offline]
- Tigerjthon, Spielprogrammierung [link hier]
- Blockchain, wie geht das? [link hier]