176 lines
3.6 KiB
Markdown
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. 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 6
|
|
|
|
---
|
|
|
|
<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>
|