Dobbelen

Opnieuw een puzzel uit ”. Een 6×6 matrix is gevuld met dobbelstenen (1-4). Er is een startcel en een eindcel. Doel: alle cellen 1x bezoeken met een route van horizontale/vertikale/diagonale lijnen; via een vast patroon. Ook deze opdracht bleek voor AI geen enkel probleem. Voor Python krijg je een script dat in minder dan 1 handvol seconden met de oplossing komt. Ik wilde een leuke simulatie en kwam dus uit bij een C# WPF project. De programma logica is uiteraard niet veel anders, je bent eigenlijk vooral bezig met de vormgeving.

Allereerst heb ik in mijn matrix simpelweg 1-4 gebruikt. Ik heb gekozen voor 1-2-3-4 als patroon voor celbezoek. Dus: Vanuit een vakje met getal n mag je alleen naar een vakje met getal (n + 1), waarbij 4 weer gevolgd wordt door 1.

Dus van 1 lleen naar een 2,van een 2 naar een 3, van een 3 naar een 4 en van een 4 naar een 1 etc

Daarnaast mag je alleen naar buren die direct naast of schuin naast het huidige vakje liggen.

Hoe zoekt het programma de route?

Het programma gebruikt een vorm van zoeken die stapsgewijs alle mogelijke paden probeert, vergelijkbaar met hoe je zelf door een doolhof zou gaan:

  1. Begin in het startvakje.
  2. Kies één van de mogelijke buren die het juiste volgende getal hebben.
  3. Ga daarin verder en herhaal de stap.
  4. Kom je op een dood punt?
    Ga een stap terug en probeer een andere richting.
  5. Dit gaat door totdat:
    • alle vakjes bezocht zijn én
    • je eindigt in het juiste eindvakje.

Deze methode heet backtracking:
je probeert een route, en als die niet werkt, ga je terug en probeer je iets anders.

Previous post Xerox PARC worm
Next post Boarding simulatie