
De CodeCup is een jaarlijkse programmeerwedstrijd, ontstaan uit de Nederlandse Informatica Olympiade, waarbij deelnemers een programma schrijven dat een spel kan spelen. Die programma's nemen het dan tegen elkaar op in een toernooi. Dit jaar draait het om DVONN, een abstract bordspel uit de GIPF reeks.
Over het spel

DVONN is een spel voor twee spelers die elk een kleur (wit of zwart) spelen. Het wordt gespeeld op een bord met 49 velden en 49 stukken: 23 witte, 23 zwarte en 3 rode Dvonn stenen. Het spel wordt gespeeld in twee fasen. In de eerste fase zetten spelers om de beurt (wit begint) een steen op een leeg veld op het bord, waarbij eerst de drie Dvonn stenen geplaatst worden, en de spelers daarna verder gaan met de stenen van hun eigen kleur.
Na zes zetten (I3 K3 C3 J3 K4 J2) zou het bord er bijvoorbeeld zo uit kunnen zien: Merk op dat de eerste speler twee van de drie Dvonn stenen heeft geplaatst en de tweede speler daardoor een zwarte steen meer heeft geplaatst. | |
Dit gaat zo door tot alle stenen geplaatst zijn, bijvoorbeeld: |
Nu begint de tweede fase van het spel, waarin wit weer als eerste zet. Elke beurt verplaatst een speler een stapel stenen (een enkele steen zien we gemakshalve ook als stapel) waarbij de volgende regels in acht genomen moeten worden:
- Een speler mag alleen met een stapel zetten als de bovenste steen zijn kleur heeft.
- Een stapel moet in een rechte lijn in één van de zes richtingen verplaatst worden, en wel precies zoveel stappen als de stapel hoog is. (Het is niet toegestaan een deel van een stapel te verplaatsen.)
- Met een stapel mag niet gezet worden als alle zes buurvelden met stenen bezet zijn (de kleur maakt daarbij niet uit; stapels aan de rand van het bord hebben minder dan zes buren en zijn dus altijd vrij).
- Een stapel moet na het zetten op een andere stapel eindigen (en dus niet op een leeg veld).
In het voorbeeld kan wit bijvoorbeeld I1J2 spelen. Daarna kan zwart E5D5 spelen, wat tot de volgende stelling leidt: |
Tenslotte is er nog een cruciale regel: alle stenen op het bord moeten direct of indirect verbonden blijven met de rode Dvonn stenen. Dat betekent dat er vanaf elke stapel een pad moet zijn van aangrenzende, niet-lege velden naar een stapel die een Dvonn-steen bevat (die hoeft in die stapel niet bovenaan te liggen). Alle stapels die na een zet niet meer verbonden zijn met één van de drie Dvonn-stenen, worden van het bord verwijderd.
Als het spel bijvoorbeeld vervolgd wordt tot: | |
Dan kan zwart de stenen in het midden wegspelen door de verbindende steen op C2 weg te halen, bijvoorbeeld door C2B2 te spelen: | |
Het spel gaat door zolang spelers kunnen zetten. Passen is alleen toegestaan wanneer een speler geen enkele geldige zet meer heeft. Wanneer beide spelers moeten passen is het spel afgelopen. Een eindstelling is bijvoorbeeld: |
Nu zet elke speler de stapels waarbij een steen van zijn kleur bovenop ligt op elkaar, en wie de hoogste stapel heeft (met andere woorden: wie de meeste stenen onder controle heeft) heeft gewonnen. In dit voorbeeld wint zwart dus met 15 tegen 7 punten!
De spelregels worden ook uitgelegd op de GIPF site en op de CodeCup website.
Wie kan er meedoen?
De competitie is open voor iedereen die een speler wil inzenden in één van de ondersteunde programmeertalen: Pascal, C, C++, Java, Python, Haskell en JavaScript. Je programma draait op de CodeCup server en heeft per spel 5 cpu-seconden en niet meer dan 64 MB werkgeheugen beschikbaar. Zie voor details de technische regels op de CodeCup site.Hoe kan ik oefenen?
Als je wat spelervaring wil opdoen voordat je begint met programmeren, kun je op Little Golem het spel online spelen. (Let op: dit is niet realtime, dus een spel kan enkele dagen tot weken duren!) Verder zijn er enkele computerprogramma's om Dvonn tegen te spelen. Holtz is een grafische applicatie waarmee Dvonn gespeeld kan worden over het netwerk en tegen de AI. Dvonner biedt een moeilijkere (maar gelukkig configureerbare) tegenstander met een wat spartaanse text-based interface.Als je je eigen Dvonn-speler hebt geschreven en die wil testen, dan kun je gebruik maken van de jurysoftware (Caia) die door de CodeCup-organisatie beschikbaar wordt gesteld. De Caia distributie bevat ook enkele programma's van verschillend niveau die als tegenstander dienen om mee te oefenen. Daarmee kun je een idee krijgen van de speelsterkte van je eigen programma.
Tenslotte wordt er vóór de finale competitie op 22 januari 2011 elke drie weken een testcompetitie georganiseerd. Door je programma daarvoor in te zenden kun je zien hoe je programma het doet tegen echte echte tegenstanders. De eerstvolgende testcompetitie is op zaterdag 9 oktober 2010.
Waarom een topic op GoT?
Het blijkt dat er op GoT altijd wel interesse is in programmeercompetities, gezien het succes van het Programmeervuur en de Programming Contest, maar helaas worden zulke contests slechts sporadisch georganiseerd. Vandaar dat het me leuk lijkt om een topic over de CodeCup te starten, om de aandacht op deze interessante competitie te vestigen, en om deelnemers een plek te geven om in het Nederlands te discussiëren over het spel en de wedstrijd.Dus: wie doet er mee, of is van plan mee te doen aan deze competitie? Zoek je tegenstanders om het spel uit te proberen? Heb je vragen over de manier waarop je een programma kunt inzenden? Dan is dit het topic de plek waar je moet zijn!
Voor dit topic is toestemming verleend door NMe.