diff --git a/notebooks/FAQ.ipynb b/notebooks/FAQ.ipynb index d929703d6e2cd6c821ed7557982521d9c096644a..5c7251c5b3e7e9954de48fbd9d9f59eac2aa94f2 100644 --- a/notebooks/FAQ.ipynb +++ b/notebooks/FAQ.ipynb @@ -469,6 +469,27 @@ "turtle.bye()" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Diese Funktion können wir nutzen, um unsere Schildkröte mit zufälligen Farben zu färben. \n", + "# Wir können die Funktion nutzen, indem wir sie in unseren Codeblock einfügen und dann an passender Stelle aufrufen.\n", + "# Im nächsten Codeblock ist ein Beispiel gegeben. \n", + "# Varianten: setcolor(t,1) : Schildkröte und Zeichnung in derselben zufälligen Farbe\n", + "# Varianten: setcolor(t,2) : Schildkröte und Zeichnung in zwei unterschiedlichen zufälligen Farben\n", + "\n", + "def setcolor(t,n):\n", + " turtle.colormode(255) # um RGB-Farben anzuwenden, muss man vorher diesen Colormode aktivieren\n", + " if n==1: \n", + " t.color(randint(0,255),randint(0,255),randint(0,255)) #generiert eine zufällige Farbe für die turtle\n", + " if n==2: \n", + " t.color((randint(0,255),randint(0,255),randint(0,255)),(randint(0,255),randint(0,255),randint(0,255))) #generiert eine zufällige Farbe für die turtle\n", + " \n" + ] + }, { "cell_type": "code", "execution_count": null, @@ -484,23 +505,31 @@ "\n", "#Hier lernen wir die Funktionen shape(), stamp(), color(), colormode() und fd() kennen\n", "\n", - "colors=['red','purple','blue','yellow','orange']\n", - "def line(t): \n", - " turtle.colormode(255)\n", + "# Fkt setcolor wurde hier eingefügt\n", + "def setcolor(t,n):\n", + " turtle.colormode(255) # um RGB-Farben anzuwenden, muss man vorher diesen Colormode aktivieren\n", + " if n==1: \n", + " t.color(randint(0,255),randint(0,255),randint(0,255)) #generiert eine zufällige Farbe für die turtle\n", + " if n==2: \n", + " t.color((randint(0,255),randint(0,255),randint(0,255)),(randint(0,255),randint(0,255),randint(0,255))) #generiert eine zufällige Farbe für die turtle\n", + "\n", + " \n", + "def line(t): #Diese Funktion malt eine einfache Linie (in verschiedenen Farben und mit Stempeln jede 100 Einheiten)\n", + " setcolor(t,1) #Hier rufen wir setcolor mit unserer turtle auf und setzen n=1, um die Linie und die Schildkröte in derselben Farbe zu färben\n", " t.shape('turtle')\n", " t.stamp() #wir machen einen Stempel an dieser Stelle von unserem turtle\n", " t.fd(100)\n", - " turtle.colormode(255) # um RGB-Farben anzuwenden, muss man vorher diesen Colormode aktivieren\n", - " t.color(randint(0,255),randint(0,255),randint(0,255)) #Jetzt können wir Farben in RGB-Werten angeben (--> mehr Möglichkeiten)\n", + " setcolor(t,1) #nächster Aufruf von setcolor\n", + " setcolor(t,1) # wir können setcolor beliebig oft und an beliebiger Stelle aufrufen\n", " t.stamp() #wir machen einen Stempel an dieser Stelle von unserem turtle\n", " t.fd(100)\n", - " t.color(randint(0,255),randint(0,255),randint(0,255))\n", + " setcolor(t,2)\n", " t.stamp() #wir machen einen Stempel an dieser Stelle von unserem turtle\n", " t.fd(100)\n", - " t.color(randint(0,255),randint(0,255),randint(0,255))\n", + " setcolor(t,2)\n", " t.stamp() #wir machen einen Stempel an dieser Stelle von unserem turtle\n", " t.fd(100)\n", - " t.color(randint(0,255),randint(0,255),randint(0,255))\n", + " setcolor(t,2)\n", "\n", " \n", "line(telmo) #wir rufen line mit der turtle namens telmo auf. Wir könnten aber genauso anna oder otto nehmen\n", diff --git a/notebooks/hausaufgabe2.ipynb b/notebooks/hausaufgabe2.ipynb index 126aecc8e47a4854a6d8f503db215f95cf783fdd..4a06ee844f045f80e353b4243733c3adf8e3f6f0 100644 --- a/notebooks/hausaufgabe2.ipynb +++ b/notebooks/hausaufgabe2.ipynb @@ -87,34 +87,58 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "- **Aufgabe 3:** Nutzen Sie die folgenden Funktionen, um die Schildkröte in einer Farbe Ihrer Wahl zu färben." + "### Hilfsfunktion:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#Wenn Sie diese Funktion mit Ihrer turtle aufrufen, wird die turtle eine zufällige Farbe annehmen \n", + "def setcolor(t,n): \n", + " turtle.colormode(255) # um RGB-Farben anzuwenden, muss man vorher diesen Colormode aktivieren\n", + " if n==1: #setze n=1, um die Schildkröte und Formen in der gleichen Farbe zu färben\n", + " t.color(randint(0,255),randint(0,255),randint(0,255)) #generiert eine zufällige Farbe für die turtle\n", + " if n==2: # setze n=2, um Schildkröte und Formen in unterschiedlichen Farben zu färben\n", + " t.color((randint(0,255),randint(0,255),randint(0,255)),(randint(0,255),randint(0,255),randint(0,255))) \n", + " \n", + "'''Diese Funktion kann genutzt werden, um Ihrer turtle zufällige Farben zu geben. Für mehr Infos, schauen Sie in das FAQ. Dort sind Beispiele implementiert.'''" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "- **Aufgabe 4:** Nutzen Sie die folgenden Funktionen, um Ihr Dreieck in einer Farbe Ihrer Wahl zu färben." + "### eingebaute turtle-Methoden:\n", + "- Dokumention von python: https://docs.python.org/3/library/turtle.html\n", + " - Dort finden Sie alle Funktionen, die Sie auf Ihre Schildkröte anwenden können. Wichtig für die Hausaufgabe sind (neben denen, die Sie schon kennengelernt haben):\n", + "- `t.shape('turtle')`: ändert die Gestalt der \"Schildkröte\" in eine Schildkröte.\n", + "- Die Farbe der Schildkröte und der Färbung der Muster wählt man mit `t.color(c)`, wobei `c` eine Zeichenkette ist (z.B. 'red', 'green', etc.) \n", + "- `t.begin_fill()` ... `t.end_fill()`: Färbt das Muster, was die Schildkröte zwischen den beiden Anweisungen gezeichnet hat, ein.\n", + "- `t.stamp()`: Platziert bei Aufruf eine Schildkröte an der Stelle, an der die Schildkröte sich zu diesem Zeitpunkt befindet." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "- **Aufgabe 5:** Nutzen Sie die folgenden Funktionen, um an jeder Ecke Ihres Dreiecks eine Schildkröte zu platzieren." + "- **Aufgabe 3:** Nutzen Sie die Funktionen, um die Schildkröte in einer Farbe Ihrer Wahl zu färben. Dies können Sie direkt in Ihrem Code aus Aufgabe 2 einbauen. Sie können aber auch einen neuen Codeblock erstellen." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### turtle-Methoden:\n", - "- Dokumention von python: https://docs.python.org/3/library/turtle.html\n", - " - Dort finden Sie alle Funktionen, die Sie auf Ihre Schildkröte anwenden können. Wichtig für die Hausaufgabe sind (neben denen, die Sie schon kennengelernt haben):\n", - "- `t.shape('turtle')`: ändert die Gestalt der \"Schildkröte\" in eine Schildkröte.\n", - "- Die Farbe der Schildkröte und der Färbung der Muster wählt man mit `t.color(c)`, wobei `c` eine Zeichenkette ist (z.B. 'red', 'green', etc.) \n", - "- `t.begin_fill()` ... `t.end_fill()`: Färbt das Muster, was die Schildkröte zwischen den beiden Anweisungen gezeichnet hat, ein.\n", - "- `t.stamp()`: Platziert bei Aufruf eine Schildkröte an der Stelle, an der die Schildkröte sich zu diesem Zeitpunkt befindet." + "- **Aufgabe 4:** Nutzen Sie die Funktionen, um Ihr Dreieck in einer Farbe Ihrer Wahl zu färben. Dies können Sie direkt in Ihrem Code aus Aufgabe 2 einbauen. Sie können aber auch einen neuen Codeblock erstellen." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- **Aufgabe 5:** Nutzen Sie die Funktionen, um an jeder Ecke Ihres Dreiecks eine Schildkröte zu platzieren. Dies können Sie direkt in Ihrem Code aus Aufgabe 2 einbauen. Sie können aber auch einen neuen Codeblock erstellen." ] }, { @@ -142,7 +166,7 @@ "\n", "# Testen Sie hier ihre Funktion; fügen Sie auch eigene Tests hinzu\n", "otto = turtle.Turtle()\n", - "repeat_triangle(otto, 40)\n", + "repeat_triangle(otto, 80)\n", "\n", "turtle.mainloop()\n", "turtle.bye()" @@ -154,6 +178,7 @@ "source": [ "- **Aufgabe 7:** Schreiben Sie eine Funktion `pile_triangle`, die **vier Dreiecke übereinander** zeichnet. Sie soll zwei Argumente `t` und `l` erhalten. `t` ist eine Schildkröte, `l` eine Ganzzahl. Die Funktion soll die Schildkröte nutzen, um die gleichseitigen Dreiecke mit Seitenlänge `l` zu zeichnen. Die Farbe der Dreiecke soll nicht schwarz sein. <br>\n", " - *Zusatz* : Jedes Dreieck soll eine eigene Farbe haben.\n", + " - *Zusatz*: Verändern Sie die Funktion so, dass sie eine variable Anzahl von Dreiecken zeichnen kann, die als Argument übergeben wird.\n", "\n", "\n", "- Eine mögliche Lösung könnte so aussehen: \n", @@ -188,6 +213,7 @@ "source": [ "- **Aufgabe 8:** Schreiben Sie eine Funktion `tiled_triangle`, die **drei Dreiecke übereinander und drei Dreiecke nebeneinander** zeichnet. Sie soll zwei Argumente `t` und `l` erhalten. `t` ist eine Schildkröte, `l` eine Ganzzahl. Die Funktion soll die Schildkröte nutzen, um die gleichseitigen Dreiecke mit Seitenlänge `l` zu zeichnen. Die Farbe der Dreiecke soll nicht schwarz sein. <br>\n", " - *Zusatz* : Jedes Dreieck soll eine eigene Farbe haben.\n", + " - *Für Profis* : Färben Sie auch die Zwischenräume, die hier entstehen\n", " \n", "\n", "- Eine mögliche Lösung könnte so aussehen:\n",