Workshop CMU - Grundlagen

Hier geht es um die Grundlagen des Kurses CS0 der Carnegy Mellon University. In der Dokumentation findest du Informationen über Funktionen und Parameter, die zur Lösung der Aufgaben notwendig sind:

1. Objekte, Parameter und Funktionen

Objekte

Füge den folgenden Quellcode in deinen CMU Sandkasten ein.


Kreis(300,150,50, füllen="hellblau", rand="grün")
RegelmäßigesVieleck(80,80,50,8, füllen='purpur', rand='rot')
Rechteck(100,280,200,100,füllen='orange', rand='rot')
Linie(100,250,200,100,füllen='blau',linienBreite=4)
Beschriftung('Hallo Welt', 200, 200)
                            

  • Wie muss der Quellcode geändert werden, damit sich mindestens zwei Objekte überlappen?
  • Was passiert, wenn die Quelltext-Zeilen überlappender Objekte ausgetauscht werden?

Mondfinsternis

Der folgende Quellcode zeigt eine Nachtlandschaft, nach einer Weile sehen wir eine Mondfinsternis.

  • Mit welcher Änderung wandert der Erdschatten schneller oder langsamer über die Zeichenfläche?
  • Wie kann die Farbe des Mondes geändert werden, wenn der Schatten ihn überlagert? Die Methode trifftForm() kann hier nützlich sein.

# https://eu.academy.cs.cmu.edu/collection/59/0/exercise
anwendung.hintergrund = 'mitternachtsBlau'

# Boden und Sterne im Hintergrund
Rechteck(0, 275, 400, 125, füllen=farbverlauf('dunkelGrün', 'grün', start='unten'))
Stern(35, 70, 5, 4,  füllen='gelb')
Stern(40, 180, 5, 4,  füllen='gelb')
Stern(175, 30, 5, 4, füllen='gelb')
Stern(370, 73, 5, 4, füllen='gelb')
Stern(320, 160, 5, 4, füllen='gelb')
Stern(145, 140, 5, 4, füllen='gelb')

mond = Kreis(250, 80, 50, füllen='weiß')
erdSchatten = Kreis(0, 80, 48, füllen='mitternachtsBlau')

def beimSchritt():
    erdSchatten.mitteX += 2
    if (erdSchatten.links > 400):
        erdSchatten.rechts = 0

# Wenn der Mond vom Schatten der Erde bedeckt wird, setze den Wert für füllen auf
# den Wert, den du im Inspektor siehst.
# Ansonsten setzte die Farbe des Mondes zurück auf den Ausgangswert.
### Füge deinen Code hier ein ###
                        

2. Interaktion und Ereignisse

Der Kreis folgt der Maus

Wenn du mit der Maus auf die Zeichenfläche klickst, bewegt sich der Kreis zu dem Punkt, den du gerade angelickt hast.


anwendung.hintergrund = farbverlauf('schwarz', 'marineblau')

kreis = Kreis(10,10,30,füllen=farbverlauf("gelb","rot", start="links"))

def beiMaustasteRunter(mausX, mausY):
    kreis.mitteX = mausX
    kreis.mitteY = mausY
                        
  • Wie kannst du den Kreis bei jedem Klick um 60° drehen?

3. Verzweigungen

Kreise mit unterschiedliche Farben

Das folgende Beispiel enthält eine Verzweigung.


# https://eu.academy.cs.cmu.edu/notes/52
anwendung.hintergrund = 'hellGelb'
Linie(0, 200, 400, 200, gestrichelt=True)

def beiMaustasteRunter(mausX, mausY):
    if (mausY < 200):
        Kreis(mausX, mausY, 30, füllen='dodgerBlau')
    else:
        Kreis(mausX, mausY, 30, füllen='purpur')
                        
  • Kannst du den Quellcode so erweitern, dass 4 Quadranten entstehen und die Kreise in jedem Quadranten jeweils eine andere Farben annehmen?