TigerJython4Kids | HomeTurtlegrafikRobotikDatenbanken |
EINLEITUNG |
|
AUFGABE 1: WETTERSYMBOLE POSITIONIEREN |
In einer einfachen Schweizerkarte sollst an der Position einiger Städte (z.B. Genf, Bern, Lausanne, Zuerich, Luzern Basel, Winterthur, Chur, Lugano usw.) die passenden Wetter-Symbole anzeigen. Dazu verwendest du folgende Sprites:
Die Wetter-Sprites und eine einfache Schweizerkarte kannst du unter sprites.zip herunterladen. Packe diese zip-Datei aus und speichere den Ordner sprites im Unterverzeichnis /bin des TigerJython-Installationsverzeichnisses. Dann werden die Bilder automatisch in deine Programme eingefügt. Selbstverständlich kannst du auch eigene Bilder erstellen oder eine andere Landeskarte verwenden. Diese musst du im Untererzeichnis /bin/sprites des Installationsverzeichnisses speichern. Das untenstehende Programm zeigt das Symbold sunny.png an der Position von Genf und das Symbol rain.png an der Position von Bern. from gturtle import * makeTurtle() hideTurtle() drawImage("sprites/ch.gif") setPos(-365, -155) drawImage("sprites/sunny.png") setPos(-150, 40) drawImage("sprites/rain.png") Das Turtlefenster ist 800x600 Pixel gross, der Punkt (0, 0) ist in der Mitte des Fensters. Der Befehl drawImage("sprite/ch.gif") stellt das Bild ch/gif an der Position (0, 0) dar. drawImage("sprites/sunny.gif") stellt das Bild sunny.png an der Position, die man mit dem Befehl setPos(-365, -155) gesetzt hat, dar. Um die Koordinaten der Städte zu finden, kannst das untenstehende Programm verwenden. Bei einem Mausklick in die Karte werden unten im TigerJython-Fenster die Koordinaten des Mausklicks angezeigt. Du kannst in einer anderen Schweizerkarte schauen, wo sich die Städte etwa befinden. from gturtle import * def onMousePressed(x, y): print(x, y) setPos(x, y) dot(20) makeTurtle(mousePressed = onMousePressed) hideTurtle() drawImage("sprites/ch.gif") |
AUFGABE 2: WETTERDATEN ABFRAGEN |
from gturtle import * import weather def printWeather(city): info = weather.request(city) print(city,": temp =",info["temp"]) cities = ["Genf","Bern"] for city in cities: printWeather(city) delay(100) a) Ergänze das Progrmm so, dass die Temperatur in den Städten Genf, Bern, Lausanne, Basel Luzern, Zürich, Winterthur, Chur und Lugano angezeigt werden. Es ist vorteilhaft alle Städte in einer Liste zusammenzufassen und die Wetterabfrage mit einer Funktion printWeather() für alle Städte der Liste durchzuführen. b) Ergänze das Programm so, dass nicht nur die Temperatur, sondern auch der Luftdruck, Luftfeuchtigkeit und die Wetterlage angezeigt werden. c) Der Wetterserver erfasst die Daten 200 000 Orten in der ganzen Welt. Erstelle eine Abfrage für weitere Schweizerstädte, bzw. für andere bekannte Städte in Europa. |
AUFGABE 3: WETTERKARTE MIT INTERNETDATEN |
Erstelle eine Wetterkarte, in welcher die Wetter-Symbole mittels der aktuellen Daten, die bei jedem Programmstart automatisch vom Wetterserver abgefragt werden, angezeigt werden. Um den Programmcode zu strukturieren, verwendest du die Funktionen printWeather(city) (siehe Aufgabe 2), drawWeather(city) und pos(city), die du für jede Stadt der Liste cities aufrufst. Die untenstehenden Vorlagen für die Funktionen muss du noch ergänzen. def drawWeather(city): info = weather.request(city) if info["description"] == "clear sky": drawImage("sprites/sunny.png") elif info["description"] in ["few clouds", "scattered clouds"]: drawImage("sprites/lightcloudy.png") elif info["description"] in ["rain", "light rain", "moderate rain"]: drawImage("sprites/rain.png") ... def pos(city): if city == "Genf": setPos(-365, -155) elif city == "Lausanne": setPos(-250, -85) elif city == "Bern": setPos(-150, 40) |
AUFGABE 4: WETTERKARTE EUROPA |
Erstelle eine einfache Europa-Karte und der Grösse von maximal 800x600 Pixel und speichere sie im gif oder png-Format im Unterverzeichnis /bin/sprites der TigerJython-Installationsverzeichnisses.
|