Refactor Sudoku solver architecture

This commit is contained in:
2026-09-10 23:11:34 +02:00
parent 7bf4a8d725
commit a5ec338277
21 changed files with 475 additions and 260 deletions
+6 -6
View File
@@ -1,7 +1,7 @@
package strategies
import (
"git.kleiax.de/homepage/board"
"git.kleiax.de/homepage/field"
)
// ────────────────────────────────────────────────────────────────────────────── //
@@ -13,20 +13,20 @@ type LastDigit struct {
}
func (ld *LastDigit) SearchProgressableCells() int {
ld.field.ForEachPart(func(part board.Part) {
ld.field.ForEachPart(func(part field.Part) {
missingNumbers := part.GetMissingNumbers()
if len(missingNumbers) == 1 {
var emptyCell *board.Cell
part.ForEachCell(func(cell *board.Cell) {
var emptyCell *field.Cell
part.ForEachCell(func(cell *field.Cell) {
if cell.GetNumber() == 0 {
emptyCell = cell
}
})
// fmt.Println(part)
// fmt.Printf("Gefundene Zelle: %d/%d - %d, missungNumber: %v, Typ: %T\n", emptyCell.Pos.GetRow(), emptyCell.Pos.GetColumn(), emptyCell.GetNumber(), missingNumbers, part)
change := board.ExternalChange{
change := field.ExternalChange{
Cell: emptyCell,
Action: board.ActionSetNumber,
Action: field.ActionSetNumber,
Value: missingNumbers[0],
From: emptyCell.GetNumber(),
TriggerdBy: ld.getName(),