2023-01-10 11:40:39 +01:00

176 lines
3.6 KiB
Markdown

<h1 class="emoji">🌏</h1>
# Turtle on Tour
Tastatur-Kommandos
---
<h2 class="emoji">🎮</h2>
### Ferngesteuert
```python
# Was soll Turtle tun?
# Turtle soll sich vorwärts bewegen
def move_forward():
schildkroete.forward(20)
# Turtle soll sich nach rechts drehen
def move_right():
schildkroete.right(90)
schildkroete.forward(20)
```
Beachtet auch hier die Einrückung!
---
<h2 class="emoji">🐾</h2>
### Lauf los, Turtle!
```python
# den vorher definierten Aktionen Tasten zuweisen
spielplatz.onkey(move_forward, "Up")
spielplatz.onkey(move_right, "Right")
# aktivieren
spielplatz.listen()
```
---
<h2 class="emoji">👩‍💻</h2>
### Wie findet man die richtigen Tasten?
<ul>
<li class="fragment fade-in">die Tasten heißen wie ihre Beschriftung:<br/>z.&thinsp;B. heißt die Taste <span class="variable">A</span> ebenfalls "A"</li>
<li class="fragment fade-in">besondere Tasten:</li>
<div style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 2em;">
<p class="fragment fade-in"><span class="variable"></span> "Down"</p>
<p class="fragment fade-in"><span class="variable"></span> "Up"</p>
<p class="fragment fade-in"><span class="variable"></span> "Right"</p>
<p class="fragment fade-in"><span class="variable"></span> "Left"</p>
</div>
</ul>
---
# Aufgabe 5
---
<h2 class="emoji">🥗🥬</h2>
## Mittagessen für Turtle
Turtle hat Hunger. Bewegt Turtle mit Tastaturbefehlen und helft ihm bei der Futtersuche.
<pre><code class="language-python"># Vorbereitungen
from turtle import *
import helfer
spielplatz = helfer.spielplatz()
schildkroete = helfer.schildkroete()
essen = helfer.essen()
</code></pre>
---
## 1. Turtle bewegen
<ul>
<li>Sorgt dafür, dass sich Turtle beim Aufruf der Methode `move_right` nach rechts bewegt.</li>
<li class="fragment">Ersetzt hierfür den Kommentar mit den richtigen Anweisungen.</li>
</ul>
```python
# Turtle bewegen
def move_right():
# Aufgabe 1.
# Bewege die Schildkröte nach rechts.
```
<!-- .element class="fragment" -->
---
## 2. Auf Tastendruck reagieren
<ul>
<li>Sorgt dafür, dass die Funktion `move_right` aufgerufen wird, wenn die rechte Pfeiltaste ("Right") gedrückt wurde.</li>
<li class="fragment"><strong>Tipp:</strong> Nutzt hierfür `spielplatz.onkey(…)`.</li>
<li class="fragment">Probiert euren Code aus: Bewegt sich Turtle?</li>
</ul>
---
## 3. Freie Bewegungen
<ul>
<li>Fügt die weiteren Bewegungen nach links, vorn und hinten hinzu.</li>
<li class="fragment">Verknüpft sie mit den Tasten auf der Tastatur.</li>
</ul>
---
<!--h1 class="emoji">💡</h1>
## Tipp:
```python
# Turtle essen lassen
while True:
helfer.vergleiche(essen, schildkroete)
spielplatz.update()
```
--->
### Lösungsbeispiel
<section>
<pre><code class="language-python" data-line-numbers="96-98|5-7|9-10|12-13|15-19|21-23"># Vorbereitungen
from turtle import *
import helfer
spielplatz = helfer.spielplatz()
schildkroete = helfer.schildkroete()
essen = helfer.essen()
spielplatz.listen()
# Turtle nach rechts bewegen
def move_right():
schildkroete.right(90)
schildkroete.forward(20)
spielplatz.onkey(move_right, "Right")
# Turtle nach links bewegen
def move_left():
schildkroete.left(90)
schildkroete.forward(20)
spielplatz.onkey(move_left, "Left")
# Turtle nach vorn bewegen
def move_forward():
schildkroete.forward(20)
spielplatz.onkey(move_forward, "Up")
# Turtle nach hinten bewegen
def move_backward():
schildkroete.back(20)
spielplatz.onkey(move_backward, "Down")
# Turtle essen lassen
while True:
helfer.vergleiche(essen, schildkroete)
spielplatz.update()
</code></pre>
</section>