Plan van aanpak:

Voor dammen zijn er een aantal modules nodig: een zet-, denk-, interface-, representatie- en robot besturings module. Deze onderdelen zullen afzonderlijk gevormd worden:

Een zet module:
Deze module definieert alleen de mogelijke zetten. Dat wil zeggen: schuiven en slaan. We hebben ervoor gekozen het behalen van dammen achterwege te laten, gezien dit de regels en het kiezen van een strategie complexer maakt. Hiervoor hebben wij helaas niet genoeg tijd tot onze beschikking.
De regels van het damspel worden geïmplementeerd als generieke move-predikaten die zowel door AL0 als Minimax gebruikt kunnen worden.

Een denk module:
Deze module zorgt voor het geven van een strategie binnen het spel. Hierbij kan worden gedacht aan het in de val lokken van tegenstanders door op het juiste moment het juiste stuk op te offeren. We waren van plan hiervoor MiniMax en AL0 van Bratko gebruiken. AL0 voor het zetten van vallen en
MiniMax voor staten waar geen specifieke tactiek voor is. Uiteindelijk hebben we besloten om MiniMax zelf verder te verfijnen en efficiënter te maken in plaats van een advice language te gebruiken. Hiervoor is dit plan van aanpak aangepast.

Een interface module:
Dit is de module die het daadwerkelijk mogelijk moet maken om een potje te dammen tegen de computer. Het moet menselijke zetten inlezen en de zetten van de robot laten visualiseren. Als we tijd genoeg hebben zou het ook handig zijn om deze module de door de menselijke speler ingevoerde zetten te testen op legaliteit, zodat er geen mogelijkheid is om vals te spelen.

Een representatie module:
Dit is enkel een representatie van het bord op het scherm. Dit is nodig om voor ons te zien wat er gebeurd, aangezien wij de interne representatie van het bord niet gemakkelijk kunnen interpreteren. Er wordt een bubblesort gebruikt (deze werkt snel en goed voor relatief kleine sort opdrachten en is makkelijk te implementeren) om de interne state op een representeerbare volgorde te zetten en deze vervolgens uit te printen.

Een robot besturings module:
Dit is wat wij in de afgelopen weken hebben gemaakt. Het krijgt een coördinaat ingegeven en kan daar het hoeken van de arm uit bereken en de arm vervolgens bewegen. Met een paar kleine aanpassingen in de code van het bord moet dit zonder problemen functioneren. De eerste stap in het maken van deze module is om het Prolog programma een bestandje te laten schrijven met de zetten die gedaan moeten worden. Zodat deze door een Java-programma kan worden ingelezen.