Dit is de gearchiveerde website van de CodeCup NIO 2015.
Klik hier om naar de huidige website te gaan.
CodeCup NIO 2015 - Een online programmeerwedstrijd.  

CodeCup NIO 2015 - Een online programmeerwedstrijd.

CaptureGo

CaptureGo is een vereenvoudigde versie van het spel Go. Onze versie van CaptureGo wordt gespeeld op een 9x9 bord. Er wordt gespeeld op de kruispunten van de verticale en horizontale lijnen. In het plaatje zie je dat het kruispunt linksonder A1 heet en het kruispunt rechtsboven I9.

Het doel van het spel is om een of meer stenen van je tegenstander in te sluiten. In het voorbeeld is de witte speler ingesloten en heeft de zwarte speler gewonnen.

Hoe gaat het spel?

De witte speler begint met het plaatsen van een steen in zijn kleur. Vervolgens is zwart aan de beurt om een steen te plaatsen. Dit gaat zo om en om verder. De speler die het eerst een of meer stenen van de tegenstander heeft ingesloten, heeft gewonnen. Zoals in het voorbeeld kan je de tegenstander ook insluiten op de rand.

Opmerking: het is mogelijk om je tegenstander in te sluiten terwijl het lijkt dat je ook jezelf insluit. Eeen dergelijke zet is winnend omdat je eerst je tegenstander insluit.

Hoe moet jouw programma het spel spelen?

Jij moet een programma schrijven dat een zet van je tegenstander ontvangt via de jurysoftware en dat vervolgens een zet teruggeeft aan de jurysoftware. Het is aan jou de taak om aan de hand van de laatste informatie een zo goed mogelijke zet te bepalen!

De zetten van de jurysoftware moet je lezen vanaf stdin (standaard input) en je eigen zetten moet je afdrukken naar stdout (standaard uitvoer).

Als eerste actie moet je programma er achter komen of je met wit of met zwart speelt. Als je programma "Start" inleest dan speel je met wit en dan wordt jouw eerste zet als reactie verwacht. In het andere geval speel je dus met zwart en is de string die je gekregen hebt de eerste zet van de witte speler. Je mag er vanuit gaan dat die zet altijd correct is. Dan wordt van jou de eerste tegenzet verwacht. Zo gaat dat door tot het spel is afgelopen.

Als je programma een ongeldige zet doet, of als je programma crasht of er te lang over doet, dan verliest je programma. In dat geval neemt de jurysoftware jouw taak over zodat het andere programma het spelletje kan uitspelen. De jurysoftware zal &qout;zomaar wat doen" ome je tegenstander de gelegenheid te geven om een goede score te kunnen halen. Als je programma "Quit" inleest in plaats van een gewone zet, dan betekent het dat er iemand heeft gewonnen en dat je jouw programma op de normale manier moet beƫindigen.

Als je een zet doorgeeft aan de jurysoftware moet je de string verplicht afsluiten met een newline. Ook ben je verplicht om je uitvoer daarna te flushen zodat de jurysoftware niet gaat zitten wachten totdat de computer de zet heeft doorgegeven aan de jurysoftware (Zie de uitleg bij de technische regels)

Met alle ingezonden programma's die in staat zijn samen te werken met onze jurysoftware wordt een toernooi georganiseerd.

De puntentelling in het toernooi

Als je programma van een ander programma een spelletje wint, krijg jij daarvoor 3 punten. De verliezer ontvangt 1 punt. Een gelijkspel is (volgens ons) niet mogelijk.

Als jouw programma tijdens een spelletje wordt gediskwalificeerd, krijg je echter 0 punten. De andere speler krijgt het aantal punten zoals dat in de regels hierboven is uitgelegd.

Voorbeeld van de communicatie met de jurysoftware

SpelerInvoerUitvoer
WitStartE5
ZwartE5G2
WitG2E3
ZwartE3G3
...
ZwartC2I3
WitQuit
ZwartQuit

Zwart speelt als laatste op veld I3 en wint daarmee. Beide spelers krijgen nu een "Quit" toegestuurd, en hebben de gelegenheid netjes af te sluiten.