Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1314:strukturvorschlag_13.02.2014

Strukturvorschlag 13.02.2014

Es ist für die Verfolgung eines solchen Projekts (und für die Zusammenarbeit) nützlich, das Programm in Module aufzuteilen, um die man sich einzeln kümmert. Ich habe nun folgende Struktur vorbereitet die sich im Unterverzeichnis projekt eures Verzeichnisses befindet.

  • Das Modul kontouren.py enthält Funktionen zur Parametrisierung von Kanten/Kontouren. Schon implementiert ist die Funktion parametrisiere_kanten die einen geeigneten Anfangspunkt sucht. Von diesem aus sucht die Funktion finde_kontour eine Kontour (also eine Folge von Punkten), die bloß deklariert wurden und noch zu implementieren ist. 1)
  • Das Modul bewegeturtle.py definiert die Funktionen bewege_turtle_auf_bild, um die Turtle über ein Bild zu bewegen. Diese Funktion ist bisher nur deklariert und noch zu implementieren.
  • Das Modul bildoperationen.py enthält die Funktionen zur Bildbearbeitung, die ihr bisher definiert habt (und eine weitere). Selbstverständlich könnt ihr weitere Funktionen ergänzen, wenn ihr wollt.
  • Das Modul turtlemod.py enthält Klassen, die es ermöglichen, eine Turtle vor einem Hintergrundbild zu bekommen. An diesem Modul ist nichts zu tun. Ich habe es vorbereitet, da es dabei technische Probleme gab, bei deren Lösung ihr meines Erachtens nicht sonderlich viel hättet lernen können.

Das neue „Hauptprogramm“ kanten_erkennen_neu.py importiert die Funktionen und Klassen dieser Module, macht aber ansonsten genau das, was euer altes Hauptprogramm getan hat. Neu hinzugekommen ist nur der Aufruf von *parametrisiere_kanten*, das Einzeichnen der gefundenen Kanten in ein Bild und der Aufruf von *bewege_turtle_auf_bild*.

Nun könntet ihr in zwei Gruppen an den Modulen kontouren.py und bewegeturtle.py arbeiten (und die jeweils nur deklarierte Funktionen implementieren.) Damit man gut unabhängig arbeiten kann, enthält jedes der Programme einen kleinen Test in der Funktion main().

1) Zum Sprachgebrauch: Wenn ein def blabla(…) oder class blabla(…) im Code stehen, nenne ich die Funktionen/Klassen deklariert, auch wenn diese Funktionen/Klassen noch gar nichts tun. Den eigentlichen Programmcode dazu nenne ich Implementierung.
ws1314/strukturvorschlag_13.02.2014.txt · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)