Python - sudokusolver 1/2

Python
Sudokusolver 1/2
1 / 16
volgende
Slide 1: Tekstslide
InformaticaMiddelbare schoolvwoLeerjaar 5

In deze les zitten 16 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 45 min

Onderdelen in deze les

Python
Sudokusolver 1/2

Slide 1 - Tekstslide

Codetip van de dag!
Niet fout. Maar kan handiger
Als de eerste if statement waar is komt er een return. Dat betekent dat de code in deze functie verder niet wordt uitgevoerd. Is die else dan wel nodig? 
Een retorische vraag is een stijlfiguur waarbij een vraag wordt gesteld, waarop men geen antwoord verwacht. Het is de bedoeling dat de ontvanger (toehoorder, lezer) zich aangesproken voelt en voor waarheid aanneemt wat de zender (spreker, schrijver) suggereert.

Slide 2 - Tekstslide

Hanoi
Dit is de oplossing voor het hanoi probleem. Door slim gebruik te maken van recursie kan je voor elke hoeveelheid schijven de oplossing genereren. Maar misschien lijkt de code simpeler dan de oplossing?
Opdracht
Probeer de code eens in je hoofd uit te voeren voor drie schijven. Is dat te volgen?

Slide 3 - Tekstslide

Debuggen in repl.it
De code van hanoi is misschien nog wel te volgen voor 1 of twee schijven. Maar met drie schijven wordt het al best lasstig. Laat staan met meer. Gelukkig heeft repl.it net als visual studio een debugger. Dat is precies wat we nodig hebben!

Slide 4 - Tekstslide

Resume
Door gaan met programma

Step over
Door naar de volgende regel

Step into
De functie in stappen

Step out
De functie uit stappen
Niet vergeten op play te drukken!
Debuggen in repl.it

Slide 5 - Tekstslide

3. getal mag één keer voorkomen in een blok
1. Getal mag één keer voorkomen in een rij
2. Getal mag één keer voorkomen in een kolom
Sudoku solver
Eerst drie deelproblemen oplossen om erachter te komen of een getal op een bepaalde plek is toegestaan.

Slide 6 - Tekstslide

3. getal mag één keer voorkomen
1. Getal mag één keer voorkomen ni een rij
2. Getal mag één keer voorkomen in een kolom
Sudoku solver
Een sudoku in python

Slide 7 - Tekstslide

Sudoku solver
Deze sudoku in python is eigenlijk gewoon een lijst.

Een lijst van lijsten.

En dan kan je dus dingen doen zoals het getal van een bepaalde coordinaat printen. Zoals het getal uit 
rij 0 in kolom 1
Output

Slide 8 - Tekstslide

Schrijf een functie die alle getallen uit een bepaalde kolom print. Het grid staat in de onderstaande code.
Oefening
timer
3:00

Slide 9 - Tekstslide

Plak het linkje van je oplossing hier

Slide 10 - Open vraag

Twee aantal operatoren die je nodig zal hebben:

% - modulo ( rest getal van een deling )
3 % 2 = 1
5 % 3 = 2
5 % 2 = 1


// - Floor division ( delen en afronden naar beneden )
3 // 2 = 1
5 // 2 = 2
7 // 3 = 2
Benodigde operatoren

Slide 11 - Tekstslide

Maak voor elk van de deelproblemen de functie waarmee je kan controleren of een getal al bestaat. Dit zijn de opdrachten in repl.it.

Door deze vervolgens te combineren weet je of een getal mogelijk is op een bepaalde plek in een sudokupuzzel. 
Sudoku solver

Slide 12 - Tekstslide

Backtracking
Ah shit! Heel dat backtracking vergeten! Nou dat moet dan maar de volgende les... ;)
D'oh!
lgg

Slide 13 - Tekstslide

Huiswerk
Opdrachten voor soduko in repl.it. Behalve de laatste want daar heb je backtracking voor nodig..
lgg

Slide 14 - Tekstslide

Dit wil ik graag doen met informatica

Slide 15 - Open vraag