Program för att lösa Sudoku

- Upprepa följande, så länge det finns någon tom ruta i pusslet:
- Leta upp en ruta, som har precis en "kandidatsiffra"
- Fyll i rutan med kandidaten
I Pseudokod skulle de kunna se ut något sånt här:
sudoku = GetInputSudoku()
GreedySolver(sudoku)
print sudoku
function GreedySolver(sudoku)
__do
____pos = FindCandidatePos(sudoku)
____if pos!=null
______sudoku.Set(pos, sudoku.FindCandidates(pos)[0])
__while pos!=null
function FindCadidatePos(sudoku)
__foreach(pos in sudoku)
____cands = sudoku.FindCandidates(pos)
____if(cands.Count == 1)
______return pos
__return null
Läs även andra bloggares åsikter om programmering, sudoku, tdd
Kommentarer
Postat av: johan t
Jag tror att algoritmen du föreslår inte räcker riktigt. Det är inte alltid som man är i ett läge där det finns någon ruta som bara har en kandidatsiffra. Man måste då göra lite mer avancerade uteslutningsmetoder.
Postat av: Olof
Jepp, upptäckte det också efter diskussion med Mozhdeh . Men det kanske duger som "stödprogram"..?
Är nästan klar med en version av programmet förresten.
Postat av: johan t
i sanning, det skulle underlätta det första stadiet
Trackback