At My Fingertips
Primitiven
Bei grösseren Projekten ist es meist eine gute Methode, zuerst die Grobstrukturen zu legen und dann erst weiter zu verfeinern. So haben auf jeden Fall alle ein Produkt (den Schneemann) und jede*r kann danach selbst bestimmen, was und wie weit man noch verfeinern will.
Beim Basisschneemann bauen wir
Bauen Sie den Basisschneemann: Ersetzen Sie ...
und # TODO
mit Ihrem Code.
Der Beispielschneemann benutzt folgende Dimensionen und RGB-Werte:
Das p in 200p dürfen Sie im Code nicht schreiben, es steht für die grafische Einheit Pixel. 200 * 1.5
bedeutet auch, dass Python für Sie rechnet.
from pytamaro import(
rgb_color, ellipse, rectangle,
above, overlay,
show_graphic
)
# Eingabe / Grundeinstellungen
farbe_schnee = rgb_color(243, 243, 234)
farbe_hintergrund = rgb_color(100, 200, 250)
kopf_durchmesser = 200
bauch_durchmesser = kopf_durchmesser * 1.5
# Eingabe / Basiselemente
kopf_basic = ellipse(kopf_durchmesser, kopf_durchmesser, farbe_schnee)
bauch_basic = ellipse(bauch_durchmesser, bauch_durchmesser, farbe_schnee)
hintergrund_basic = rectangle(
kopf_durchmesser * 2,
kopf_durchmesser * 3,
farbe_hintergrund
)
# Verarbeitung: Zusammenbau (Kopf, Bauch, Hintergrund)
schneemann_basic = overlay(
above(kopf_basic, bauch_basic),
hintergrund_basic
)
# Ausgabe
show_graphic(schneemann_basic)
kopf_durchmesser = 200
bauch_durchmesser = kopf_durchmesser * 1.5
bauch_durchmesser = kopf_durchmesser * 1.5
ist besser, wenn Sie die Grösse des Schneemanns später anpassen wollen. Stellen Sie sich vor, dass Sie ihren Schneemann noch in eine Schneelandschaft (mit Hügeln, verschneiten Bäumen, einem Häuschen etc.) einbauen wollen. Dann merken Sie aber, dass Ihr Schneemann viel zu gross ist. Anstatt jetzt bei jedem Grössenwert des Schneemanns eine kleinere Zahl hinzuschreiben, können Sie einfach bei beim bauch_durchmesser
einmal die 200
mit 50
ersetzen. So einfach geht das dann.
Benutzen Sie nun folgende Codefelder, um jeweils die Verziehrungseinzelteile herzustellen, dem Schneemann hinzuzufügen, und dann zu überprüfen.
Fügen Sie Knöpfe hinzu, mindestens 4; der Beispielschneemann hat:
Bei den Augen, aber auch beim Lächeln und der Nase, da man diese (z. B. mittels unsichtbaren Zusatzgrafiken) etwas herumschieben muss. Zudem müssen Sie ja die Augen und den Mund noch etwas versetzt auf den Kopf setzen, da können Sie auch die gleichen Tricks brauchen.
from pytamaro import transparent, above, magenta
# Grundeinstellungen
knopf_durchmesser = kopf_durchmesser / 10
knopf_farbe = rgb_color(50, 50, 50)
knopf = ellipse(knopf_durchmesser, knopf_durchmesser, knopf_farbe)
knopf_abstand = ellipse(knopf_durchmesser, knopf_durchmesser, transparent)
# Verarbeitung
k_ = above(knopf, knopf_abstand) # 1 Knopf über 1 Abstand
k_k_ = above(k_, k_) # 1x 'Kopf und Abstand' über 1x 'Kopf und Abstand'
k_k_k_ = above(k_k_, k_) # 2x 'Kopf und Abstand' über 1x 'Kopf und Abstand'
k_k_k_k_ = above(k_k_k_, k_) # 3x 'Kopf und Abstand' über 1x 'Kopf und Abstand'
k_k_k_k_k = above(k_k_k_k_, knopf) # 4x 'Kopf und Abstand' über 1 Knopf
knoepfe = k_k_k_k_k
bauch_und_knoepfe = overlay(knoepfe, bauch_basic)
# Ausgabe
show_graphic(bauch_und_knoepfe)
for
-Schleife) zu sehen, klicken Sie links auf das schwarze Dreieck.# Importe und Grundeinstellungen wie oben
k_ = above(knopf, knopf_abstand) # 1 Knopf über 1 Abstand
knoepfe = knopf # Knopfreihe mit 1 Knopf starten
for i in range(5):
knoepfe = above(k_, knoepfe) # 5x einen Knopf mit Abstand hinzufügen
bauch_und_knoepfe = overlay(knoepfe, bauch_basic)
show_graphic(bauch_und_knoepfe)
Folgende Schneemannteile bieten keine Musterlösungen mehr.
Der Beispielschneemann hat:
Der Beispielschneemann benutzt:
Die Mundsteine sind nur 80% so gross wie die Knöpfe, haben aber dieselbe Farbe.
Fügen Sie z. B. Hut, Arme, Füsse, Herz, Schal etc. hinzu. Viel Spass!
=
zuweisen und diese Variable weiterverwenden (Variablen als Zwischenspeicher).This activity has been created by Gall and is licensed under CC BY-SA 4.0.
It is derived from this activity.
Schneemann
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version c3a8286 (Mon, 14 Oct 2024 13:30:28 GMT)