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

CodeCup NIO 2014 - Een online programmeerwedstrijd.

Vier-op-een-rij

Het doel van Y is om als eerste de drie zijden van de driehoek onderling verbonden te hebben. Het bord bestaat uit 120 hexagons, die elk met maximaal zes andere hexagons verbonden zijn. De velden op het bord zijn genummerd van 1 tot en met 120, te beginnen bovenin en dan van links naar rechts.

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 eerste de drie zijden verbonden heeft door één groep van zijn eigen stenen wint het spel. Een gelijkspel is niet mogelijk. Een hoekpunt behoort tot beide zijden.

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 "zomaar wat doen" om 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 2 punten. De verliezer ontvangt 1 punt.

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
WitStart19
Zwart1925
Wit2518
Zwart1824
...
Wit6273
ZwartQuit
WitQuit

Wit speelt als laatste op veld 73 en wint daarmee. Beide spelers krijgen nu een “Quit” toegestuurd, en hebben de gelegenheid netjes af te sluiten.