9.8 Bouwsteen 3 — actions(bord)
Leerdoel: je geeft alle mogelijke zetten op een bord terug: alle
lege cellen als (rij, kolom) tuples.
Wat doet deze functie?
Voor minimax moet je weten welke zetten er überhaupt mogelijk zijn
op een bord. Dat zijn precies de cellen die nog leeg (None) zijn.
We returnen die als een set van tuples. Set, omdat de volgorde er niet toe doet — alle lege cellen tellen even zwaar.
Specificatie
- Input: een
bord. - Output: een
setvan(i, j)tuples voor alle cellen waarbord[i][j] is None. - Voorbeelden:
- Leeg bord → set van 9 tuples:
{(0,0), (0,1), ..., (2,2)}. - Bord met 1 zet → set van 8 tuples.
- Vol bord → lege set:
set().
- Leeg bord → set van 9 tuples:
Voorspel
Wat denk je dat de output is?
bord = [["X", None, "X"],
["O", "X", "O"],
[None, None, None]]
# Welke cellen zijn None?
Antwoord
{(0, 1), (2, 0), (2, 1), (2, 2)} — vier lege cellen.
Volgorde maakt niet uit; een set is ongeordend.
Bouw zelf en test
Code-omgeving wordt voorbereid…
Tip
Twee genestelde lussen en een set.add:
mogelijk = set()
for i in range(3):
for j in range(3):
if bord[i][j] is None:
mogelijk.add((i, j))
return mogelijk
Let op de dubbele haakjes: mogelijk.add((i, j)) voegt één tuple
toe. mogelijk.add(i, j) zou Python verwarren — add accepteert maar
één argument.
Door naar stap 9: functies in functies →.