Frog ist ein Python-Modul zur Grafikprogrammierung, speziell entwickelt für den Unterrichtseinsatz mit Python als Lernsprache. Frog ist in seiner Grundidee angelehnt an die bekannte Turtle-Graphik der Programmiersprache Logo, die - anders als Python - speziell als Lernsprache entwickelt wurde und für andere Einsatzzwecke auch nicht zu gebrauchen ist. Zwar ist seit Python 2.6 das turtle-Modul der Standardbibliothek ebenfalls brauchbar (bis Python 2.5 war es das nicht), aber zum einen entstand das frog-Modul vor Erscheinen von Python 2.6 und zum anderen hat mir persönlich die Implementation des Python eigenen turtle-Moduls (das vor Python 2.6 als externes Modul xturtle verfügbar war) nicht gefallen.
Frog ist hinsichtlich des Funktionsumfangs vergleichbar mit dem turtle-Modul ab Python 2.6, die Benutzerschnittstelle ist aber aus meiner Sicht deutlich besser. Außerdem gehen die Möglichkeiten des Frog-Moduls über die von turtle hinaus. Ich spare mir an dieser Stelle weitere Erklärungen - die kann man im Tutorial nachlesen, das Bestandteil des frog-Pakets ist. Stattdessen zeige ich ein kleines Beispiel, das zeigt, wie einfach man mit dem frog-Modul programmieren kann. Das Ergebnis ist rechts daneben abgebildet.
from frog import *
teich = Pool()
frosch = Frog(teich, visible=False)
frosch.color = "salmon"
frosch.fill = True
frosch.fillcolor = "peachpuff"
for k in range(6):
frosch.move(50)
frosch.turn(60)
frosch.turn(60)
frosch.jump(50)
frosch.dot()
teich.ready()
Das Beispiel oben zeigt nicht, wie leistungsfähig das frog-Modul ist! Es lebt von seinen Fröschen, die schreiben, lesen, singen, schwimmen, springen, tauchen, sich in beliebige andere Figuren verwandeln und weitere Kunststückchen können. Mit frog kann man komplexe, rekursive Grafiken ebenso entwickeln wie ereignisgesteuerte Anwendungen, graphische Animationen und - wichtig, wichtig! - Spiele. Zum Umfang des frog-Pakets gehört außer dem eigentlichen Modul frog auch ein Demoprogramm, das einige dieser Möglichkeiten zeigt.
Ein einfaches Beispiel zur Demonstration ist TetraFrog - der Screenshot spricht für sich. Damit meine Schüler ihre Ideen selbst entwickeln, zeige ich den Quelltext des Programms an dieser Stelle nicht. Er umfasst rund 350 Zeilen und ist objektorientiert aufgebaut. In der ausführbaren Version als exe-Datei reagiert das Programm leider deutlich träger auf die Tastatursteuerung als bei Ausführung des Quelltextes im Python-Interpreter. Die Steuerung der Spielsteine erfolgt mittels Pfeiltasten und Leertaste.