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:

  1. Zoek de eerste vrije plaats in de focus. Als er geen enkele vrije plaats meer is, is de sudoku opgelost.

  2. Genereer alle nummers die volgens de huidige situatie ingevuld zouden kunnen worden op de vrije plaats.

  3. Als er geen enkel nummer past:

    1. 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.

    Anders:

    1. Genereer alle mogelijke Sudoku borden gegeven de mogelijke nummers. Voeg deze toe aan de mogelijke partiële oplossingen.

    2. 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.