Dragonate
Erfahrenes Mitglied
Ich versuche mal auszuformulieren was ich bisher hab, wie die Vorgehensweise ist und wo das Problem liegt.(es geht wiedermal um Sudoku)
Mein Code ist mittlerweile viel zu Komplex, als das ich Ihn hier posten könnte, deshalb die Problemstelle via Pseudo-Code:
Variable count1 zählt wieviele Möglichkeiten es für eine Zahl in einem 9ner Block gibt.
Dabei werden immer, wenn es 2 Möglichkeiten gibt (und natürlich keine nach Bedingung1) , diese in einem 2D Array gespeichert, welches sich nach 2 gesetzten Werten im Zähler erhöht, etwa so :
Nun habe ich auch eine Bedingung im Code die sagt, wenn ich nichts mehr einsetzen kann, gehe zur letzten temp_Lösungen zähler-stelle, und setze statt der ersten Möglichkeit, die 2te Möglichkeit in Sudoku ein.
Ab hier kriege ich die Probleme, es wird immer nur die zuletzt gefundene Doppel-Lösung ausgetauscht und ich habe Probleme es zu programmieren, das eventuell vorherige doppel-lösungen schon falsch waren, und er an dieser Stelle tauschen muss.
Mir ist klar das ich da auch mit Zählern arbeiten muss, aber hat da jemand einen hilfreichen logischen tip ?
Mein Code ist mittlerweile viel zu Komplex, als das ich Ihn hier posten könnte, deshalb die Problemstelle via Pseudo-Code:
Variable count1 zählt wieviele Möglichkeiten es für eine Zahl in einem 9ner Block gibt.
Code:
Bedingung1:
Wenn count1 == 1 ist (nur eine Möglichkeit) --> setze in Sudoku ein (funktioniert)
//(Dabei ist drum herum alles geregelt, wie festgestellt wird, wieviele Möglichkeiten es gibt)
Bedingung2:
Wenn count1 == 2 ist (es gibt 2 möglichkeiten) && Bedingung1 nicht mehr möglich ist[
--> merke dir beide Möglichkeiten && setze die erste ein (funktioniert)
Dabei werden immer, wenn es 2 Möglichkeiten gibt (und natürlich keine nach Bedingung1) , diese in einem 2D Array gespeichert, welches sich nach 2 gesetzten Werten im Zähler erhöht, etwa so :
Code:
temp_lösungen["Position1"]["zähler"]=Zahl_für_sudoku
temp_lösungen["Position2"]["zähler"]=Zahl_für_Sudoku
//("Zahl_für_sudoku" könnte an 2 verschiedenen Positionen im Sudoku stehen)
Wenn 2 Lösungen eingesetzt wurden --> zähler++;
//(damit wenn neue 2 Lösungen gefunden werden, die alten nicht verloren gehen)
Nun habe ich auch eine Bedingung im Code die sagt, wenn ich nichts mehr einsetzen kann, gehe zur letzten temp_Lösungen zähler-stelle, und setze statt der ersten Möglichkeit, die 2te Möglichkeit in Sudoku ein.
Ab hier kriege ich die Probleme, es wird immer nur die zuletzt gefundene Doppel-Lösung ausgetauscht und ich habe Probleme es zu programmieren, das eventuell vorherige doppel-lösungen schon falsch waren, und er an dieser Stelle tauschen muss.
Mir ist klar das ich da auch mit Zählern arbeiten muss, aber hat da jemand einen hilfreichen logischen tip ?
Zuletzt bearbeitet: