8 Damen Problem?
# 8 Damen-Problem Es handelt sich hier um eine sehr bekannte Übung bzw. Problemstellung. Allerdings wird das Problem meist mit Rekursion gelöst bzw. ist ein bekanntes Beispiel dafür, um alle möglichen Lösungen zu finden. Hier soll es aber zunächst darum gehen nur eine mögliche Lösung zu finden. Bitte daher zunächst ohne Rekursion umsetzen. Problembeschreibung: auf einem 8x8 Felder großen Schachbrett sollen 8 Damen so platziert werden, dass sie sich nicht gegenseitig schlagen können. Eine Lösung soll zum einen grafisch ausgegeben werden, in dem alle Felder des Bretts mit O oder X dargestellt werden (Feld mit O = keine Dame, Feld mit X = hier steht eine Dame) und auch als Liste der Koordinaten. Wie kann das eigentliche Problem manuell/schrittweise gelöst werden (also wenn Ihr ein Schachbrett vor Euch stehen habt) und daraus einen Programmablauf ableiten und umsetzen -Die obige Ausgabe natürlich an der Stelle einbauen, an der eine Lösung gefunden wurde (alle 8 Damen auf dem Brett ohne Konflikte) -Ihr könnt aber die Ausgabe natürlich auch dann machen, wenn ihr einen Konflikt findet oder wenn ihr eine weitere Dame ohne Konflikt auf dem Brett platziert habt -Gerne auch print ausführlich nutzen, um den Inhalt/Wert von Variablen an verschiedenen Stellen zur Info auszugeben -Das hilft Euch auch nachzuvollziehen, ob der Code das tut, was Ihr Euch überlegt habt oder ob es ggf. unvorhergesehene Situationen gibt -Weitere Funktionen nach Bedarf implementieren -Bitte den Code kommentieren -Am Beginn den gewählten Lösungsansatz beschreiben -Bedeutung/Zweck globaler Variablen kommentieren -Jede Funktion kommentieren : welchen Zweck hat die Funktion, was sind die Aufrufparameter (welcher Datentyp, Bedeutung), was sind die Rückgabewerte (Datentyp, Bedeutung) -Ebenfalls Euren Programmablauf kommentieren (wichtige Schleifen oder if/else-Entscheidungen) -Mehrzeilige Kommentare mit drei Anführungzeichen “““ beginnen und beenden -Fehlerbehandlung berücksichtigen, d.h. immer auch überlegen, ob eine bestimmte Aktion schiefgehen kann und dann sicherstellen, dass sich das Programm nicht mit Fehler beendet -z.B. „list index out of range” -Wenn das Programm eine mögliche Lösung gefunden hat, bitte auf jeden Fall manuell überprüfen, ob sie auch stimmt Zusatzaufgabe: -Lässt sich das Programm noch erweitern, um mehr als eine Lösung/alle Lösungen zu finden? Wie? Ohne Rekursion? -Hinweis: es gibt insgesamt 92 mögliche eindeutige Lösungen