Refactor Sudoku field and solver implementation

This commit is contained in:
2026-09-16 22:52:44 +02:00
parent 8a5ae8c640
commit f7f9c16184
24 changed files with 1574 additions and 603 deletions
+9 -5
View File
@@ -15,8 +15,8 @@ func (hs *HiddenSingle) SearchProgressableCells() int {
m := make(map[int]int)
part.ForEachCell(func(cell *field.Cell) {
notes := cell.Notes.Get()
for note := range notes {
notes := cell.GetNotes().Get()
for _, note := range notes {
m[note]++
}
})
@@ -28,9 +28,9 @@ func (hs *HiddenSingle) SearchProgressableCells() int {
}
}
for num := range hiddenSingles {
for _, num := range hiddenSingles {
part.ForEachCell(func(cell *field.Cell) {
if cell.Notes.Has(num) {
if cell.GetNumber() == 0 && cell.GetNotes().Has(num) {
change := field.ExternalChange{
Cell: cell,
Action: field.ActionSetNumber,
@@ -38,7 +38,7 @@ func (hs *HiddenSingle) SearchProgressableCells() int {
From: cell.GetNumber(),
TriggerdBy: hs.getName(),
}
hs.changes = append(hs.changes, change)
hs.queue(change)
}
})
}
@@ -50,6 +50,10 @@ func (hs *HiddenSingle) getName() string {
return "Hidden Single"
}
func (hs *HiddenSingle) Name() string {
return hs.getName()
}
// ────────────────────────────────────────────────────────────────────────────── //
// HIDDEN_PAIR STRUCTURE //
// ────────────────────────────────────────────────────────────────────────────── //