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]