Picobot¶
Deze uitwerkingen zijn modeloplossingen voor de vier Picobot-opdrachten uit
week 1. Een staat is hier geen positie in de kamer, maar een fase in de
strategie. De regel kiest op basis van de huidige staat en de vier zichtbare
richtingen een beweging en eventueel een nieuwe staat. Een X betekent: blijf
staan en verander alleen van staat. Bekijk ook het practicum Picobot
en de weekindex.
Opdracht 1 - De lege kamer¶
Deze uitwerking hoort bij Opdracht 1 in het practicum.
0 *x** -> E 0
0 *E** -> X 1
1 x*** -> N 1
1 N*** -> X 2
2 ***x -> S 2
2 ***S -> W 1
De strategie is een zigzag over alle kolommen. Staat 0 gaat naar het oosten tot de oostmuur. Daarna wisselt Picobot naar staat 1 en gaat naar het noorden tot de noordmuur. Staat 2 laat hem vervolgens naar het zuiden gaan. Aan de zuidmuur gaat hij één vak naar het westen en begint de volgende kolom.
Staat |
Gedrag |
Overgang |
|---|---|---|
0 |
Naar het oosten zolang dat kan |
oostmuur → 1 |
1 |
Naar het noorden zolang dat kan |
noordmuur → 2 |
2 |
Naar het zuiden zolang dat kan |
zuidmuur → west, 1 |
De wildcard maakt de regels onafhankelijk van muren aan de andere drie kanten.
Opdracht 2 - Het doolhof¶
Deze uitwerking hoort bij Opdracht 2 in het practicum. Lees voor de strategie ook het doolhofcollege.
0 **x* -> W 1
0 **W* -> X 3
1 ***x -> S 2
1 ***S -> X 0
2 *x** -> E 3
2 *E** -> X 1
3 x*** -> N 0
3 N*** -> X 2
Deze oplossing volgt de right-hand rule: Picobot houdt steeds dezelfde wand aan zijn rechterhand. De vier staten bewaren daarvoor de richting waarin hij op dat moment probeert te lopen. In deze code zijn de richtingen als volgt verdeeld:
Staat |
Richting die Picobot probeert |
Richting vrij |
Richting geblokkeerd |
|---|---|---|---|
0 |
west |
stap west, staat 1 |
blijf staan, staat 3 |
1 |
zuid |
stap zuid, staat 2 |
blijf staan, staat 0 |
2 |
oost |
stap oost, staat 3 |
blijf staan, staat 1 |
3 |
noord |
stap noord, staat 0 |
blijf staan, staat 2 |
In de bewegingskolom staat hoofdletter X voor blijf staan. In de
omgevingskolom betekent kleine x iets anders: daar betekent het dat in die
richting geen muur staat. Lees dus bijvoorbeeld 0 **W* -> X 3 als: staat 0,
een muur in het westen, blijf staan en ga naar staat 3. Daarmee sluit de uitleg
aan op precies de regels die hierboven staan.
In een gang is de richting die de staat aangeeft vrij. De bijbehorende regel
laat Picobot een stap zetten en gaat naar de volgende staat, zoals
0 **x* -> W 1: westwaarts lopen en daarna staat 1 gebruiken. Op een
splitsing bepaalt dezelfde combinatie van staat en omgeving welke doorgang in
de vaste draaiingsvolgorde van de right-hand-strategie wordt genomen. Zodra de
geprobeerde richting eindigt, is er een doodlopend punt: de bewegingskolom X
laat Picobot op zijn plek staan en de nieuwe staat probeert de volgende
richting. Bij meerdere geblokkeerde richtingen worden zulke overgangsregels
achter elkaar uitgevoerd. Zo zijn de situaties uit het college direct te
herkennen in de bewegingen en state-overgangen van deze acht regels.
Opdracht 3 - De ruit¶
Deze uitwerking hoort bij Opdracht 3 in het practicum.
0 *x** -> E 0
0 xE*S -> N 0
0 NE*x -> S 0
0 NE*S -> W 1
1 x*** -> N 1
1 N*** -> S 2
2 ***x -> S 2
2 **WS -> N 3
2 **xS -> W 1
3 **** -> W 1
De oplossing gebruikt afwisselende verticale en horizontale bewegingen langs de schuine randen van de ruit. Staat 0 handelt de oostelijke rand af: eerst naar het oosten, en bij de verschillende hoekpatronen omhoog, omlaag of naar het westen. Staat 1 is de noordwaartse sweep. Staat 2 is de zuidwaartse sweep en kiest onderaan tussen nog verder zuid, omhoog langs de rand of één stap naar het westen. Staat 3 voert die weststap uit en brengt Picobot terug naar staat 1.
De specifieke patronen (xE*S, NE*x, NE*S en **WS) herkennen de hoeken
van de ruit. Zo worden gewone randcellen en hoekcellen verschillend behandeld.
Opdracht 4 - De grot¶
Deze uitwerking hoort bij Opdracht 4 in het practicum.
0 *E** -> W 1
0 *x** -> E 0
1 **W* -> X 5
1 **x* -> W 1
2 **x* -> W 3
2 **W* -> E 0
3 ***x -> S 4
3 ***S -> X 2
4 *x** -> E 5
4 *E** -> X 3
5 x*** -> N 2
5 N*** -> X 4
Hier wordt de grot in banen doorlopen. Staten 0 en 1 vormen een oost-west- beweging: staat 0 gaat oostwaarts en keert bij de oostmuur om; staat 1 gaat westwaarts en schakelt bij de westmuur naar de volgende fase. Staten 2 en 3 doen hetzelfde voor een volgende baan, met een overgang via het zuiden. Staten 4 en 5 verbinden de banen aan de andere kant via oost en noord.
Staat |
Hoofdbeweging |
Functie van de overgang |
|---|---|---|
0 |
oost |
oostmuur → westwaartse fase 1 |
1 |
west |
westmuur → verbindingsfase 5 |
2 |
west |
westmuur → oostwaartse fase 0 |
3 |
zuid |
zuidmuur → fase 2 |
4 |
oost |
oostmuur → fase 3 |
5 |
noord |
noordmuur → fase 4 |
De zes staten coderen dus de richting én aan welke kant van de grot de
volgende baan moet worden aangesloten. De regels met X verplaatsen niet,
maar markeren alleen zo’n overgang.