In deze oefening schrijven we een programma dat automatisch Sudoku-puzzels oplost. Als je de regels van de Sudoku puzzel niet kent of vergeten bent kan je deze vinden op Wikipedia (https://nl.wikipedia.org/wiki/Sudoku1).
De oplossingsstrategie die in de skeletcode naar voor gebracht wordt is om
simpelweg elke mogelijke oplossing uit te proberen. Gegeven een Sudoku focus
en een lijst van mogelijke partiële oplossingen options
, voer je volgende
stappen uit:
Zoek de eerste vrije plaats in de focus
. Als er geen enkele vrije plaats
meer is, is de sudoku opgelost.
Genereer alle nummers die volgens de huidige situatie ingevuld zouden kunnen worden op de vrije plaats.
Als er geen enkel nummer past:
Anders:
Genereer alle mogelijke Sudoku borden gegeven de mogelijke nummers. Voeg deze toe aan de mogelijke partiële oplossingen.
Verplaats de focus naar de eerste van de mogelijke partiële oplossingen. Verwijder die sudoku uit de lijst van paritiële oplossingen. We werken nu verder aan die sudoku.