maandag 22 juni 2009

ZSB2

Dit is de website van Ian Dashorst en Jurrien Boer voor het vrije experiment bij het van 'Zoeken sturen en bewegen'
Doel is een programma te maken welke het spel scrabble kan spelen. Dus een programma welke voor een ingelezen bordopstelling een zo hoog mogelijk woord kan bedenken, en deze vervolgens met de robot arm kan plaatsen.

Hoe gaan we dit doen:

Het probleem bestaat uit 4 delen:

Organiseren van de informatie: hoe lees je borden in, welke informatie haal je hieruit, etc.

Het zoeken van geschikte woorden.

geschikte plaatsen voor de woorden bedenken

Het plaatsen van de letters



Prioriteit is nu het genereren van mogelijke woorden,

daarna kan het probleem van het leggen van de correcte stukken worden aangepakt.
Planning
Maandag
--> zoeken goede database voor woorden
--> structuur van programmas bedenken
--> 'algoritme' bedenken
Dinsdag
--> programmas schrijven
--> programma scrabbleboard.java is een scrabblebord, met write en read methodes, etc.
--> programma generatepossibilities.java genereert mogelijke woord sequences
--> programma checkwords.java haalt sequences uit die niet legale woorden zijn

Woensdag
--> algoritme implementeren
--> programma uittesten
--> begin maken aan bewegen van scrabblestukken mbv robotarm
Donderdag
--> verder testen?
--> GUI?
Vrijdag
--> programma laten zien


Algoritme
Basis idee van het algoritme: je hebt een bord met mogelijk al een woord erin; ook heb je zelf een aantal letters. Wat je gaat doen is alle permutaties berekenen van een aantal van je eigen letters en 1 letter uit het bord. Vervolgens ga je uit deze lijst de woorden selecteren welke ook echt woorden zijn. Daarna ga je van elke overgebleven woord de woorden ordenen op hoeveel punten ze opleveren, en daarna nog kijken of het wel mogelijk is. (ivm met andere gezette woorden die in de weg zitten) Vervolgens die zet ook echt maken.


Dag 1
Bedacht dat we scrabble gingen doen .
Het is handiger de werking van de chessboard files uit week 2 & 3 te doorgronden dan om deze opnieuw te maken voor scrabbleborden. Echter die bestanden zijn voor ons (nog) niet beschikbaar, deze komen hopelijk deze week onze kant op.

Daarnaast de algemene werking van ons programma geschreven, hoe het moet interacten met de scrabblebord objecten. Kennis gemaakt met een aantal manieren om strings te combineren en te permuteren.
Wat we nodig hebben is het volgende:

gegeven een verzameling 'handletters' en 'bordletters', dwz de letters die in je hand zijn en de letters die op het bord al geplaatst zijn moet het volgende gedaan worden.
de set van alle combinaties van 1 t/m n letters uit handletters noemen we set a, dit is dus de superset van A, behalve de lege verzameling. Daarnaast hebben we de set nodig die alle mogelijkheden van 1 letter uit de bordletters beschrijft, in andere woorden alle losse letters. Voor iedere mogelijkheid hiervan moet die letter uit b aan alle opties van de superset van A worden toegevoegd. Dit geeft dan alle mogelijkheden van 'woorden' waar minstens 1 letter al op het bord gebruikt wordt. Vervolgens moet een functie deze sets permuteren. Al dan niet binnen de functie zelf moeten dan van al deze permutaties de woorden gefilterd worden van de niet-woorden. Dit gebeurt d.m.v. een test of het te testen woord voorkomt in een tekst bestand met woorden.

Er is bedacht dat als de 'bordletters' allemaal met hoofdletters in het bestand word gegooid, er later ook makkelijk op te sporen is waar in het scrabblebord het woord neergezet moet worden.

Geen opmerkingen:

Een reactie posten