Dag 3 - 24 juni

Voordat we het computerprogramma uitbreiden met de AI is het belangrijk dat de implementatie van het Monopoly geen bugs bevat, want dat verhinderd het testen van de strategieën. Zo waren we vergeten dat een hypotheek op een straat ook opgeheven moet kunnen worden.

ScoresOm Strategieën toe te kunnen toepassen moet de computer de staat van het bord kunnen evalueren. Dit kan het bijvoorbeeld doen door scores met elkaar te vergelijken. Om op de score van een speler te komen worden de volgende scores berekend en bij elkaar opgeteld:

geld = 1x waarde geld

nuttige hokje = 1x waarde aankoopbedrag hokje

nutteloos hokje = 0.5 waarde aankoopbedrag hokje

setbonus = waarde aankoop bedrag x (aantal van de set die je hebt/totaal aantal van de set)

Als je kans maakt op een set, dus een nuttig hokje, krijg je setbonus die je score (aanzienlijk) verhoogt. Door de scores van de spelers met elkaar te vergelijken kan je kijken of een actie in jouw voordeel is. Je simuleert deze actie en kijkt dan of jouw score in vergelijking met die van de tegenstander verbeterd is, als dat inderdaad het geval is geeft de computer een positief advies.

Waarde van het geld

De computer kan nu al voor een groot deel monopoly spelen, maar de echte strategie ontbreekt nog, want momenteel onderneemt hij, zonder zich af te vragen of hij beter geld kan besparen, elke actie die een verbetering in de score oplevert. Ook als het in een gevaarlijke situatie zit zal hij gewoon door kopen tot hij blut is. Om dit probleem aan te pakken zou je de waarde van het geld dynamisch willen veranderd wanneer de situatie van het bord verandert. Zo zou je willen dat in een gevaarlijke situatie de waarde van het geld verhoogd wordt, waardoor het onaantrekkelijk is om te kopen. Maar bij het testen van dit idee bleek dat de AI in een hele gevaarlijke situatie niks meer kocht, ongeacht de hoeveel geld die het bezat. Dit is niet helemaal goed, want wanneer je erg achter staat wil je juist wel risico nemen.

Het volgende idee dat hieruit voorkwam was: Hoe minder geld de AI had, hoe waardevoller dat geld zou worden. Hierdoor zou hij vanzelf minder uitgeven wanneer hij weinig geld bezat en meer uitgeven wanneer hij veel bezat. Voor dit idee is een 'danger score' nodig. Deze score geeft aan hoe de gevaarlijk de setting van het bord is. (Hoe de danger score berekend wordt is te vinden in dag 4). De danger score wordt gebruikt om de helling/sterkte van de daling te bepalen. Dit bleek uiteindelijk ook niet te werken, want na het kopen van bijvoorbeeld een straat, waardoor de hoeveelheid geld afneemt, stijgt de waarde van het overgebleven geld stijgen (omdat dit minder is en dus een hogere waarde heeft). Hierdoor stijgt de score na de actie alleen maar meer, en lijkt kopen beter dan sparen. Dit is juist wat je wilt tegengaan. Wanneer je dit juist omkeert, de waarde van het geld neemt toe wanneer je er meer van hebt, wordt het (te) aantrekkelijk om al je geld te investeren in straten, omdat dit waardevoller zou zijn voor de score.

Dit dilemma koste ons veel tijd en uiteindelijk hebben we besloten om de danger score te gebruiken bij het berekenen van een threshold die aangeeft wanneer je geen huizen meer mag kopen. Dit is geen ideale oplossing. Om deze threshold minder zwart-wit te maken, laat de AI het geld onder bepaalde condities toch onder deze threshold komen. Dit is gedaan door het score verschil tussen de voor en na situatie van die actie te vergelijken met hoe ver je onder deze threshold komt. Een andere aanpassing die wij hebben toegepast is de AI agressiever te laten spelen wanneer hij op zijn tegenstander achterloopt, lage threshold, en defensiever wanneer hij op zijn tegenstander voorloopt, een hogere threshold.

Wel of niet betalen om uit de gevangenis te komen?

Ook een interessante keuze is of je wel of niet wilt betalen om de gevangenis uit te komen. Wanneer het bord heel gevaarlijk is, hoge danger score, zou het wellicht een betere keuze kunnen zijn om in de gevangenis te blijven. Onze AI kiest ervoor om uit de gevangenis te gaan wanneer de danger score niet al te hoog is en er nog straten zijn die hij graag wilt hebben (nuttige straten die nog geen eigenaar hebben). In het geval dat er geen nuttige straten meer bestaan kiest hij er voor om in de gevangenis te blijven.

Wanneer koop ik huizen?

Huizen kopen is een riskante onderneming. Natuurlijk is het heel verleidelijk, omdat je hierdoor heel veel kan verdienen. Maar in een 1-op-1-situatie, zoals onze Monopolie, is de kans om veel te verdienen veel kleiner. In het geval dat het kopen van huizen niet goed uitpakt en je je huizen daarna weer moet verkopen krijg je nog maar de helft van de waarde terug, wat veel invloed heeft op je score. Ook hier gebruiken wij een threshold die gebaseerd is op de danger score. De AI mag zijn geld besteden aan huizen zolang zijn geld niet onder deze threshold komt.