Python - sudokusolver 1/2

Python
Sudokusolver 1/2
1 / 16
next
Slide 1: Slide
InformaticaMiddelbare schoolvwoLeerjaar 5

This lesson contains 16 slides, with interactive quizzes and text slides.

time-iconLesson duration is: 45 min

Items in this lesson

Python
Sudokusolver 1/2

Slide 1 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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

Slide 9 - Slide

Plak het linkje van je oplossing hier

Slide 10 - Open question

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 - Slide

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 - Slide

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

Slide 13 - Slide

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

Slide 14 - Slide

Dit wil ik graag doen met informatica

Slide 15 - Open question