====== Einheit 6: Weg auf restliche Zellen als Labyrinth ausbauen ====== Idee: Wir fügen alle Zellen des Weges in die ''todo''-Liste ein und machen dann eine Wegfindung. * Speichern Sie die Datei {{lehrkraefte:blc:informatik:glf24:laby:wegkomplettieren.py}} im Verzeichnis ''labyrinth''. * In der Datei ''main.py'', ''import''ieren Sie die Funktion und rufen Sie diese am Schluss von ''main.py'' mit korrekten Parametern auf. * Geben Sie das Labyrinth aus und testen Sie das Programm ''main.py''. * Was stellen Sie fest? erhält man ein gewünschtes Labyrinth? Warum nicht? Das Problem ist, dass sämtlicher erreichbarer Platz von einer Weg-Zelle aus gefüllt wird, d.h. der korrekte Weg ist ein langer Schlauch mit nur so vielen Abzweigungen, wie es zusammenhängende weisse Flächen hat. Wir können mehr Verzweigungen einbauen, wenn man hin und wieder die todo-Liste verwürfelt: * In der Datei ''wegkomplettieren.py'', importieren Sie zusätzlich die ''randrange''-Funktion von der ''random'' Bibliothek. (Mehrere Funktionen sind durch Kommas zu trennen). * Unmittelbar am Anfang der while-Schleife soll die todo-Liste verwürfelt werden, falls eine Zufallszahl von 0 bis und mit 14 genau 0 ist: if randrange(15)==0: shuffle(todo) * Speichern und die Datei ''main.py'' nochmals testen. Damit noch mehr Abzweigungen in den Weg eingebaut werden, können die Weg-Zellen nach hinten sortiert werden, indem die todo-Liste nach dem verwürfeln nach der Markierung sortiert wird: todo.sort(key=lambda x:x.mark, reverse=True)