Dag 2 - 23 juni

Implementatie

Voordat we AI inzetten om de beslissingen te nemen bij het spelen van Monopoly moet eerst het spel geïmplementeerd worden. De regels van het spel worden hierbij in grote lijnen gevolgd, maar een aantal regels worden in versimpelde vorm geïmplementeerd of zelfs weggelaten. Onze keuze was om in Java te programmeren, omdat we die programmeertaal allemaal beheersen en het goede mogelijkheden bied voor het Monopoly spel.

Het implementeren van Monopoly kost vrij veel tijd. Om tijd over te houden voor de AI wordt onze Monopoly een text-based spel. De computer houdt alles bij, maar om het spel goed te kunnen spelen moet er een Monopoly bord naast worden gehouden om te kunnen zien hoe alles ervoor staat. Wel zijn er commands om informatie op te vragen: 'money', 'property' en 'position'.

Bij het beginnen van het spel kan aangegeven worden hoeveel spelers het spel bevat. Je kan daarbij zelf kiezen welke spelers door de computer wordt gespeeld en welke door mensen. Echter laat de computer momenteel de beslissingen nog over aan de mens, omdat de computer de tactieken nog niet bevat.

Versimpelingen

Bij het implementeren van Monopoly zijn een aantal versimpelingen toegepast. In onze Monopoly kan je alleen aan het eind van je beurt huizen kopen en hypotheek opheffen. Het verkopen van huizen en hypotheek bezwaren kan zowel aan het eind van de beurt als wanneer je iets moet verkopen om te betalen en er te weinig geld voor is. Een andere versimpeling is dat bij 'Kans' en 'Algemeen Fonds' dezelfde functie aangeroepen wordt waarin random een kaart wordt getrokken, omdat deze twee kaart-typen hetzelfde doen. Er zijn evenveel 'betaal' kaarten als 'ontvang' kaarten om de kansen neutraal te houden. De spelregel 'Bij drie keer achter elkaar dubbel gooien moet je naar de gevangenis' hebben we voor het gemak achterwege gelaten.

In de spelregels van Monopoly staat dat als een speler op een onverkochte straat terecht komt en besluit deze niet te kopen deze straat geveild mag worden. Deze spelregel is ni

et aan onze Monopoly toegevoegd, omdat het om veel interactie tussen de spelers en de computer vraagt en het daarom veel tijd kost om dit goed te implementeren.Een versimpeling die het spel een iets andere twist geeft is het feit dat er niet geruild/onderhandeld wordt tussen de spelers. Je zou dit kunnen zien alsof alle pogingen hiertoe door de ander genegeerd worden. Op deze manier wordt Monopoly iets anders gespeeld, aangezien je een straat die je eenmaal gekocht hebt niet meer kan verkopen (aan de bank of een andere speler). Het is zo een stuk moeilijker om een set te krijgen en huizen te plaatsen. Op deze manier ontstaan er ook 'waardeloze' straten: straten waarmee beide spelers geen set meer kunnen krijgen. Dit gebeurt wanneer van de set meerdere spelers een straat hebben. Hierdoor kan je een ander ook dwars zitten, namelijk wanneer je een straat koopt, zodat de ander daardoor de set niet meer kan voltooien.In het figuur hiernaast stellen de straten met de (groene) huizen de straten van speler 1 voor en de straten met de (rode) hotels de straten van speler 2. Omdat van de lichtblauwe, licht paarse, oranje en donkerblauwe sets zowel speler 1 als speler 2 een straat heeft zijn deze niet heel nuttig meer, want meer dan de 'onbebouwde huur' en een 'hypotheek' kan er niet uitgehaald worden. Voor de donker paarse, rode en groene sets maakt speler 2 (rood) nog kans en speler 1 bij de gele set. Op deze vakjes zullen dus belangrijke beslissingen genomen worden. De AI wilt zijn eigen set graag compleet maken en de set van de ander graag blokkeren.

De focus op de sets is heel logisch, want je kan alleen huizen en hotels plaatsen op een straat waarvan je een set hebt en wanneer je eenmaal huizen en hotels kan plaatsen nemen je inkomsten (en de anders uitgaven) in grote waarde toe.

Monopoly als boksspelWe hebben dit spel met deze aangepaste regels meerdere malen gespeeld en hebben opgemerkt dat er drie verschillende situaties ontstaan, die eigenlijk enigszins vergeleken kunnen worden met een bokswedstrijd.

  • Klappen uitdelen: door alle straten van een set te kopen en er gebouwen op te plaatsen kun je het de tegenstander in de toekomst heel wat moeilijker maken. Als hij op een straat van jou terechtkomt, kun je hem een grote klap uitdelen.
  • Klappen blokkeren: door straten te kopen van incomplete sets van de tegenstander, kun je een mogelijke klap van hem als het ware blokkeren. Hij kan die set namelijk niet meer compleet maken (ruilen is niet mogelijk) en hier dus ook geen huizen op bouwen.
  • Klappen incasseren: soms is het handig om geld als reserve te houden. Als je binnenkort een straat met huizen van de tegenstander passeert, kan het prettig zijn om geld te hebben voor het geval je hierop belandt. Dit geld wil je dus niet allemaal uitgeven aan straten of gebouwen. Zodra je niet meer genoeg geld hebt, moet je bezittingen gaan verkopen en kun je zelfs failliet gaan, wat natuurlijk ten alle kosten vermeden moet worden.