Der input-Befehl des turtle-Moduls
Da im folgenden ein Spiel programmiert werden soll muss unser Programm interaktiv werden. Bis ist für jedes Programm immer genau das Selbe passiert, wenn man auf "Play" drückt. Bei einem Spiel soll man aber während das Programm läuft Einfluss auf das Geschehen nehmen können. Bei dem Ratespiel sollen zum Beispiel Zahlen eingegeben werden können. Das Spiel soll diese dann prüfen und entsprechend reagieren.
Das turtle
-modul hat die Möglichkeit ein "Dialogfenster" zu öffnen.
turtle.textinput(title="", prompt="")
Konkreter sieht eine Abfrage so aus:
text = turtle.textinput(title="was dann im titel des Fensters steht", prompt="Welche Frage vor dem Eingabefeld steht")
Das was in diesem Dialogfenster eingegeben wird, wird unter dem Namen vor dem =
abgespeichert. Später kann man diesen Wert dann verwenden. Zum Beispiel kann dann mit t.write(text)
der eingegebene Text von turtle
geschrieben werden.
Die Texte für title
und prompt
sind als Orientierung für den Benutzer, was er jetzt eingeben soll. Ersetzen Sie die Beispiele durch eigene Texte.
Zu beachten ist, dass tatsächlich turtle.
vor textinput
stehen muss (nicht t.
wie bei den anderen Befehlen).
Möchte man den eingegebenen Text in eine Zahl verwandeln muss man folgendes schreiben:
zahl = int(text)
Einschub
Der Computer kennt verschiedene Datentypen, Texte sind für den Computer folgen aus Buchstaben. Eine Zahl in einem Text
"25"
ist also der "Buchstabe""2"
und dann der "Buchstabe""5"
. Die Zahl25
hat dagegen keine Anführungszeichen. Zwei Beispiele in Python:5 * 5 # Ergebnis: 25 "5" * 5 # Ergebnis: 55555
Wird ein Buchstabe mit einer Zahl multipliziert wird er einfach so oft wiederholt statt den Zahlenwert auszurechnen.
Übung
Gespeichert in der neuen Datei
kleingross.py
- Schreiben Sie ein Turtle-Programm, welches zuerst nach einer Zahl fragt, und dann ein Quadrat in entsprechender Größe, also Seitenlänge zeichnet.
- Erweitern Sie das Programm, so dass es nach dem Zeichnen des Quadrats noch eine Größe für ein gleichseitiges Dreieck fragt, und dieses dann zeichnet.