Articles

Connect Four

Dit is een web applicatie om het bekende spelConnect Four te spelen. Twee spelers (A is rood, B is geel) vullen om beurten het bord met munten, en proberen daarbij vier van hun eigen munten te verbinden, hetzij horizontaal, verticaal of diagonaal.

Dit project is ontwikkeld door Christian Kollmann als project in de cursus “Software TechnologyProject”, onder supervisie van Oswin Aichholzer, aan de Graz University of Technology.

De server is geschreven in Java 7, met behulp van het Spring framework. De client is geschreven in HTML en JavaScript, met behulp van jQuery. De compatibiliteit is getest in Chromium en MozillaFirefox op Linux en Android. Desondanks zou de applicatie compatibel moeten zijn met elke browser, zoals Microsoft Internet Explorer.

Features

  • Elke speler (A en B) kan worden bestuurd door een mens of de computer (AI)
  • Kies het niveau van de AI: “Perfect” zal altijd een optimale zet doen (die misschien niet uniek is), “Just win” zal willekeurig een winnende zet kiezen (indien beschikbaar, en niet noodzakelijk optimaal), “Random” zal willekeurig een kolom kiezen
  • Move info: Toont optioneel het aantal halve zetten tot het einde van het spel voor de mogelijke zetten
  • Recommend move: Toont de perfecte zet(ten) voor de huidige speler (kan meer dan één zet zijn)
  • Ongedaan maken/Redo: De laatste zet(ten) van een van beide spelers ongedaan maken
  • Opslaan/Laden: Slaat het spel op (in lokale opslag, voorzien door HTML5) om het spel later te hervatten

Basis

De AI van dit spel is gebaseerd op een uitputtende evaluatie van alle mogelijke spelposities van maximaal 23 munten, opgeslagen in een grote databank. Borden met 24 of meer munten worden direct op de server geëvalueerd. Voor elk mogelijk bord is de status (huidige speler wint, tegenstander wint, remise) bekend, evenals het minimum aantal halve zetten dat nodig is om een overwinning van dit bord af te dwingen. Een even getal laat zien in hoeveel zetten de partij nog gewonnen kan worden door de munt in die kolom te plaatsen (aangenomen dat de tegenstander optimaal speelt, anders kun je sneller winnen). Een oneven getal geeft het maximum aantal halve zetten aan dat je de overwinning van de tegenstander kunt uitstellen (wederom uitgaande van optimaal verdedigend spel van de tegenstander). Een ‘D’ geeft een stelling aan waar de huidige speler remise kan afdwingen. Een even getal geeft dus een winnende zet aan, die een overwinning voor de huidige speler garandeert (als ze optimaal blijft spelen) in ten minste dit aantal halve zetten. Een optimale winnende zet is een zet die de kortst mogelijke reeks van halve zetten tot de speler wint garandeert. In totaal bevestigt de onderliggende uitputtende data base niet alleen dat Connect Four door de eerste speler gewonnen kan worden. Het toont voor elke mogelijke situatie op het bord de volledige informatie voor alle mogelijke zetten, dus perfecte informatie om het hele spel te analyseren.

Laat een antwoord achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *