Ga naar hoofdinhoud

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 set van (i, j) tuples voor alle cellen waar bord[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().

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

Python
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 →.