CodeCup NIO 2017 - Een online programmeerwedstrijd.  

CodeCup NIO 2017 - Een online programmeerwedstrijd.

Veel gestelde vragen

hier vind je antwoorden op een aantal vragen die we via e-mail hebben ontvangen. We zullen deze pagina herhaaldelijk bijwerken met nieuwe informatie. Als je vragen hebt die niet worden beantwoord op deze pagina stuur dan een bericht naar marcel(at)codecup.nl.

Index
1. Wat gebeurt er als mijn programma te veel tijd gebruikt?
2. Wordt de CPU-tijd of de werkelijke tijd gemeten?
3. Kan mijn programma berekeningen doen in de beurt van mijn tegenstander?
4. Kan mijn programma berekeningen doen voordat het spel begint
5. Kan mijn programma achterhalen hoeveel tijd het nog heeft?
6. Bestaat er een maximale grootte van de broncode van je programma?
7. Hoe lang duurt het om een nieuwe inzending te controleren?
8. Kan ik een extra account maken om met meerdere programma's te spelen in dezelfde competitie?

Antwoorden:

Wat gebeurt er als mijn programma te veel tijd gebruikt?
Dan wordt het spel afgebroken. Je programma verliest het spel, de andere wint. Het verlies telt dan als een 'ongeldig verlies'. De totale hoeveelheid van spelletjes die je zo hebt verloren wordt gebruikt om programma's met dezelfde hoeveelheid punten te plaatsen in het klassement; het programma met een kleiner aantal ongeldige verliezen wordt hoger geklasseerd.

Wordt de CPU-tijd of de werkelijke tijd gemeten?
De werkelijke tijd die je programma gebruikt om zetten te bereken wordt gemeten. We meten niet de tijd die de processor gebruikt om andere berekeningen te doen.

Kan mijn programma berekeningen doen in de beurt van mijn tegenstander?
Nee, het is niet mogelijk om door te gaan met berekeningen tijdens de beurt van de tegenstander. Wanneer je tegenstander bezig is met zijn zet, wordt jouw programma 'bevroren'.

Kan mijn programma berekeningen doen voordat het spel begint?
Nee, het is niet mogelijk om berekeningen te doen voordat het spel begint. Je programma wordt gestart in een 'suspended state'. De eerste keer dat het wordt geactiveerd is er direct invoer voor je programma aanwezig en begint de tijdmeting. De tijd tussen het aanbieden van de invoer en het ontvangen van de uitvoer wordt door het competitiesysteem gemeten. Je programma zal of direct worden geactiveerd wanneer je moet beginnen een zet te doen, of het zal pas worden geactiveerd wanneer je tegenstander zijn eerste zet heeft gedaan. In beide gevallen is het spel al gestart.

Kan mijn programma achterhalen hoeveel tijd het nog heeft?
Ja maar dit is een beetje lastig. We raden het niet aan, tenzij je zeker weet dat je dit nodig hebt om je programma te verbeteren. Het is mogelijk zeer sterke spelers te maken zonder gebruik te maken van alle tijd.

Als je je programma de tijd wilt laten meten, dan kun je de volgende truc gebruiken. Lees de klok af direct na het uitlezen van de invoer, en net voor het wegschrijven van de uitvoer. Het verschil tussen deze twee waarden is de hoeveelheid tijd die je programma nodig had. Let erop dat je een iets kleinere tijd vindt dan het competitiesysteem, aangezien het lezen en schrijven van zetten ook een beetje tijd kost. Let erop dat je de systeemtijd pas na het uitlezen van de tegenstanders zet opvraagt, en vlak voordat je je eigen zet wegschrijft.

Bestaat er een maximale grootte van de broncode van mijn programma?
Ja, de broncode van het programma mag niet groter zijn dan 1.474.560 bytes (de grootte van een floppy).

Hoe lang duurt het om een nieuwe inzending te controleren?
Nadat je je programma hebt ingestuurd, zie je doorgaans de resultaten binnen 10 minuten. Dit kan eventueel langer duren, als er veel inzendingen tegelijk moeten worden gecontroleerd.

Kan ik een extra account maken om met meerder programma's te spelen in dezelfde competitie?
Nee, het is niet toegestaan meer dan een versie van je programma in de competitie mee te laten doen. Het is natuurlijk toegestaan nieuwe versies van je programma in te zenden op ieder moment, aangezien nieuwe versies automatisch oudere versies vervangen. In het algemeen is het nooit toegestaan (of nodig) voor een persoon om twee accounts te hebben. Als je denkt dat een nieuw account nodig is, stuur dan een bericht naar marcel(at)codecup.nl.