Gogo Chess

Read in English

Gogo Chess

Inleiding

Sinds halverwege de jaren negentig heb ik geprobeerd een schaakspel te programmeren met kunstmatige intelligentie. Deze implementatie in Java leverde eindelijk een computerspeler op die in redelijke tijd met redelijke zetten komt (in ieder geval, op mijn moderne, snelle laptop). Het doel om Gogo Chess te bouwen is een schaakspel te maken die mij verslaan kan. Toegegeven, ik ben helemaal geen sterke schaakspeler. Al mijn schaakkennis bestaat uit het lezen van een boek dat de spelregels uitlegt en het doorlezen van David Levy’s Computer Chess Compendium.

Om het programma makkelijk in gebruik te maken heb ik een grafische user interface gebouwd dat een groot schaakbord toont. Bij het opstarten van het programma speelt de menselijke speler met wit en de computer met zwart. Gebruik de knoppen rechtsonder om te wisselen tussen menselijke en computer-speler. De menselijke speler kan zetten doen door stukken te verslepen.

Download

Je kunt GOgo Chess 1.4 downloaden door op deze link te klikken. Dubbelklik op het gedownloade bestand op Gogo Chess te starten.

Om Gogo Chess te kunnen starten heb je een Java Runtime (versie 8 of nieuwer) nodig. De meeste moderne computers hebben een Java Runtime geïnstalleerd. Als jouw computer nog geen Java Runtime heeft, dan kun je er een downloaden van de website van Oracle.

Als je een software developer bent en wil zien hoe ik dit spel heb gebouwd, neem dan een kijkje bij mijn project in Github.

Handleiding

De volgende secties leggen uit hoe in te stellen welke kleur wordt gespeeld door een mens of computer en hoe lang de computer nadenkt. Je kunt de instellingen aanpassen vóór het spel begint alsook tijdens het spel.

Menselijke speler of computerspeler?

Gebruik de knoppen rechtsonder het scherm om in te stellen of wit wordt gespeeld door een mens of computer en of zwart een mens of computer is. Bijvoorbeeld in de afbeelding hierboven zie je de omtrek van een mens op de witte knop wat aangeeft dat wit wordt gespeeld door een menselijke speler. De omtrek van een computer op de zwarte knop geeft aan dat zwart wordt gespeeld door de computer. Klik op de witte of zwarte knop om te wisselen tussen menselijke en computerspeler. Let op: as je eerst de witte speler wisselt, dan worden beide kleuren door de computer gespeeld en begint de computer direct met spelen. Als je als mense met zwart wilt spelen tegen een witte computerspeler, wissel dan eerst zwart naar menselijke speler en daarna wit naar computerspeler.

Hoe lang denkt de computer na?

De computer denkt een aantal zetten vooruit. In sommige situaties moeten veel zetten worden onderzocht, waardoor de computer veel langer nadenkt dan wanneer er een paar zetten moeten worden onderzocht. De computerspeler heeft twee manieren om te bepalen hoe lang de computer nadenkt over een zijn:

  1. De computer denkt een configureerbaar maximum aantal seconden
  2. De computer denkt een configureerbaar aantal zetten vooruit

Bij manier 1 denkt de computer ook een aantal zetten vooruit, maar de computer past het het aantal zetten aan om de denktijd te beperken tot de geconfigureerde maximum tijd.

Rechtsonder het scherm kun je instellen hoe lang de computer nadenkt. De zandloper geeft aan dat de computer een maximum aantal seconden nadenkt (manier 1). Standaard zal de computer 15 seconden denken. Klik op de pijltjes omhoog en omlaag om de computer langer of korter te laten denken.

Klik op de zandloper om te wisselen naar manier 2, waarbij de computer een aantal zetten vooruit denkt. Standaard denkt de computer 3 zetten vooruit op deze manier. Klik op de pijltjes omhoog of omlaag om het aantal zetten dat de computer vooruit denkt te verhogen of te verlagen.

Zetten ongedaan maken en opnieuw uitvoeren

Klik op de knop met de pijl naar links om de laastste zet ongedaan te maken. Het is mogelijk om zover terug te gaan tot aan het begin van het spel. Klik op de knop met de pijl naar rechts om een zet opnieuw uit te voeren.

De huidige gekozen zet wordt vetgedrukt getoond in het paneel met zetten. Wanneer een zet ongedaan wordt gemaakt, worden beide spelers menselijke spelers om te voorkomen dat een computerspeler weer nieuwe zetten gaat bedenken.

Als in plaats van zetten opnieuw uit te voeren (door een menselijke speler of computerspeler) dan worden alle zetten die volgen op de huidige zet verwijderd en wordt de nieuwe zet als laatste toegevoegd.