Dit is de gearchiveerde website van de CodeCup NIO 2013. Klik hier om naar de huidige website te gaan. |
Vier-op-een-rijHet doel van vier-op-een-rij is om vier stenen van de eigen kleur op één rij te krijgen (horizontaal, verticaal of diagonaal). De speler die dit als eerste bereikt wint het spel. Hoe gaat het spel?In deze opdracht wordt het spel gespeeld in een verticaal geplaatst bord bestaande uit 7 kolommen en 6 rijen. De kolommen zijn genummerd 1 tot en met 7. Wit begint en mag een witte steen in één van de kolommen laten vallen. De steen komt automatisch op de onderste vrije positie te liggen. Daarna laat Zwart een zwarte steen vallen in één van de kolommen. Dat gaat zo om en om door totdat één van de twee spelers vier van zijn eigen stenen in één rij heeft liggen, of totdat alle vakjes gevuld. 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 toernooiAls je programma van een ander programma een spelletje wint, krijg jij daarvoor 400 punten. De verliezer ontvangt 100 punten. In het geval van een gelijkspel krijgen beide spelers 200 punten. 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
Opmerking: dit voorbeeld stelt de wedstrijd voor van het voorbeeldplaatje. |