Op deze pagina, ga je regels van de vorige pagina implementeren zodat de computer strategisch kan spelen.
Je gaat een -blok maken zodat je naar alle klonen een signaal kan uitzenden met de positie waar de computer zijn zet wil doen. Alleen de kloon met het bijbehorende positienummer zal veranderen naar een O, net als voorheen.
De code voor volgende zet van computer
zal de drie strategieregels implementeren:
volgende zet van computer
-blok bouwen met behulp van twee nieuwe blokken: kan
nu winnen?
en winnend vierkant
, die nog niet bestaan. Om volgende zet van
computer
te bouwen moet je eerst de twee andere blokken maken, maar je hoeft ze nog niks te laten
We zullen ze alleen gebruiken om volgende zet van computer
op te zetten en je gaat
ze pas later echt implementeren.
kan
speler ... nu winnen?
altijd niet waar
rapporteert. Zet nog geen code in
winnend vierkant voor speler ...
.
kan speler ... nu winnen?
altijd niet waar
rapporteren?
Op die manier slaat de computer regels 1 en 2 over en gaat ie automatisch naar de laatste regel.
Op die manier kan je je programma blijven gebruiken terwijl je deze twee nieuwe blokken test.
zend signaal
in plaats van beste lege vierkant
Je kan status van alle winnende drietallen
gebruiken om te controleren voor een drietal waarmee
de computer de
volgende beurt kan winnen, maar je weet nog niet welk vierkant de computer gaat bezetten. Om dat mogelijk te
maken moet je de vierkanten in bord initialisern met de getallen 1 tot en met 9 in plaats van
negen keer het woord "Leeg". Dan kan de positie van het winnende drietal vinden.
Nu ga je werken aan de
-
en blokken.
Het kan ... nu winnen?
blok kan gewoon kijken of er een winnend vierkant is door naar het
resultaat van winnend vierkant
te kijken, dus je moet eerst winnend vierkant
bouwen.
Je begint door eerst een blok te bouwen om de drie vierkanten te vinden waarmee de speler de volgende
beurt zou kunnen
winnen. Daarna zal winnend vierkant
het vierkant selecteren dat nog ingevuld moet worden uit
het drietal.
Klik hier voor een hint over winnend drietal
.
Je hebt geleerd over behoud
met predikaten in Hoofdstuk 2 Les 3 Pagina 2:
Houd
items van lijsten.
Klik hier voor nog een hint over
winnend drietal
.
winnend drietal
voor alle mogelijke
invoeren (X en O). Speel verder en test ze opnieuw. Fix bugs als je ze tegenkomt.
winnend drietal
als er geen winnend drietal is?
winnend drietal
voor beide spelers en fix bugs
als die er zijn.
winnend drietal
blok.
atomen
.dubbelen
-blok geschreven in
Hoofdstuk 5 Les 1 Pagina 3: Algoritmes om lijsten te verwerken.