Het zesde toernooi om de

CvO-Windesheimprijs.

Al voor de zesde keer wordt bij de laatste opgave van de eerste ronde van de Nederlandse Informatica Olympiade een toernooi georganiseerd tussen de programma’s van leerlingen uit het voortgezet onderwijs en eventuele docenten. Het toernooi van 2001 is gewijd aan het spel Susan (voor een beschrijving zie hieronder); het toernooi wordt gespeeld op zaterdag 27 januari 2001.

Op deze site staan de achtergronden en de spelregels van het spel Susan, informatie over het toernooi en enkele links.

Mail voor vragen naar Willem van der Vegt

Susan.

Het spel Susan is bedacht door Stephen Linhart in 1991. Informatie over de ontstaansgeschiedenis en aanwijzingen over het spel kun je vinden op http://www.stephen.com/sue/sue_man.txt

Je speelt Susan met twee personen op een zeshoekig spelbord van 61 vakjes. De meeste vakjes hebben zes buren, de randvakjes hebben er vier en de hoekvakjes hebben drie buren. Vakjes worden aangeduid met een combinatie van letter en cijfer, zie onderstaande figuur.

Het spelbord van Susan.

Beide spelers hebben een stapel stenen, de ene rood, de ander geel. Degene met de rode stenen mag beginnen, daarna zetten de spelers om beurten. Als je aan de beurt bent mag je een steen op het bord plaatsen op een leeg vakje, of je mag een steen van jezelf die al op het bord stond verschuiven naar een leeg buurvakje. Als beide spelers drie maal achter elkaar een steen hebben verschoven (dus in totaal zes keer schuiven) is het remise. Je mag geen beurt overslaan.

Het doel van het spel is het insluiten van één van de stenen van je tegenstander. Je sluit een steen in door alle ruimtes er om heen te vullen; een steen kan worden ingesloten door iedere combinatie van jouw stenen, de stenen van je tegenstander en de rand van het spelbord. Maar pas op: Als één van jouw stenen door je zet wordt ingesloten, verlies je het spel, ook al heb je tegelijkertijd een steen van je tegenstander ingesloten.

Enkele voorbeelden.

(In de figuren worden rode stenen met een horizontale band aangegeven en gele met een verticale band.)

Bedreigd:

De rode steen op e4 is aan vijf kanten omringd; rood moet een verdedigende zet doen, anders zal geel bij de volgende zet winnen.

Verdedigd:

Rood zet op d2 en beschermt zo tegen het plaatsen van een steen op e3. Als geel nu op e3 zet verliest hij, omdat beide spelers dan een ingesloten steen hebben.

Blokkade:

Als geel nu zijn steen van d3 naar e3 verschuift is het voor beide spelers onhandig om een steen op d3 te plaatsen, omdat dat beide spelers tegelijk een ingesloten steen krijgen.

Opdracht:

Schrijf een programma NIO3 dat als invoer een bestand SPEL.IN inleest. Zo’n bestand begint met een regel met daarop het aantal z aan zetten dat er is opgenomen in dit bestand. Vervolgens komen er z regels met elk een zet van het spelverloop tot op dat moment. Een steen plaatsen wordt aangegeven door de aanduiding van het lege vakje te geven (bijvoorbeeld e3 of c6), bij een steen verschuiven wordt eerst het oorspronkelijke vakje aangegeven, vervolgens een min-teken, dan het nieuwe vakje (bijvoorbeeld e3-f2).

Je programma geeft als uitvoer een bestand SPEL.UIT. Dat bestand bestaat uit één regel. Die regel geeft een geldige zet aan in de stelling die ontstaan is na de zetten in SPEL.IN, voor de partij die aan de beurt is. Als je nog kunt zetten zonder remise te maken of te verliezen moet je dat doen.

Het toernooi om de CvO-Windesheimprijs.

Dit toernooi wordt gespeeld door alle deelnemende programma’s voor opgave 3 van leerlingen en eventuele docenten. Ze spelen een volledige onderlinge competitie, die live te volgen zal zijn op het Internet. In iedere onderlinge wedstrijd zijn 2 wedstrijdpunten te verdelen; bij winst gaan die punten naar de winnaar, bij remise krijgen beide deelnemers één punt. Het doen van een ongeldige zet (verkeerde zetaanduiding, plaatsen op een bezet vakje e.d.) betekent verlies van de partij; daarbij krijgt de verliezer een onreglementair partijeinde op zijn naam. Ook zijn er per partij 200 zetpunten te verdelen. De verliezer krijgt één punt voor iedere zet uit de partij, de winnaar 200 punten min het aantal zetten. Na 99 zetten wordt de partij door het juryprogramma afgebroken. Als er dan nog geen steen is ingesloten eindigt de partij in remise. Bij elke remise ontvangen beide spelers 100 zetpunten.

Winnaar van het toernooi wordt degene met de meeste wedstrijdpunten. Bij gelijk eindigen in wedstrijdpunten wint degene met het meeste zetpunten. Als ook dat geen beslissing oplevert wint degene die de minste onregelmatige partijeindes heeft gehad. Als ook dat niet helpt eindigen de deelnemers op dezelfde plaats.

Voorbeeld:

SPEL.IN

6

 

e2

 

d3

 

f2

 

d4

 

f2-e3

 

e5

SPEL.UIT

f3

 

Het toernooi.

Deelnemende programma’s worden op alle wedstrijdcomputers geplaatst. Ze krijgen daarin een eigen map; binnen die map hebben ze schrijfrechten. Als er een wedstrijd wordt gespeeld zorgt het juryprogramma voor het kopiëren van SPEL.IN naar deze map; na aanroep van het programma NIO3.EXE wordt het bestand SPEL.UIT gelezen en geanalyseerd. Voor de volgende aanroep van NIO3 worden eerst dit bestand SPEL.UIT weer verwijderd en wordt er een nieuw bestand SPEL.IN geplaatst (met de actuele spelinformatie).

Per zet heeft je programma maximaal 15 seconden de tijd.

 

Hoe loopt een wedstrijd af?

Als een wedstrijd zonder onregelmatigheden is beëindigd zijn er twee mogelijkheden:

Gewonnen

Eén van beide spelers heeft de ander omsingeld

Remise

Er zijn zes opvolgende schuifzetten gedaan, of negenennegentig zetten zonder winst

Als er iets mis gaat, kunnen de volgende foutmeldingen optreden:

TIJD OP

De laatste speler heeft meer dan de maximaal toegestane tijd verbruikt

BESTAND

De laatste speler heeft geen bestand SPEL.UIT geproduceerd

ONGELDIG

De laatste zet was niet volgens de spelregels

ONNODIG

De laatste speler heeft zichzelf klemgezet en dus verloren, terwijl er nog een alternatief was

 

Het wedstrijdschema:

De deelnemers worden in groepjes van twee of drie programma’s verdeeld; elk groepje wordt aangeduid met een korte naam (bijvoorbeeld B of G2). In iedere zitting speelt een groep tegen een andere groep (bijvoorbeeld B-F, dat betekent dat alle spelers van groep B spelen tegen alle spelers van groep F). Bij een even aantal deelnemers spelen in de eerste zitting ook de spelers uit één groepje een onderlinge wedstrijd; dat gedlt ook voor de eerste zitting van de tweede helft van het wedstrijdprogramma. Bij een oneven aantal deelnemers speelt in iedere zitting één groepje alleen onderling; zo’n zitting wordt door deze spelers een wedstrijd minder gespeeld.

Zodra het resultaat van een zitting bekend is wordt het gepubliceerd op de Website van het toernooi.

 

Toegang tot de informatie:

Via het speelschema is de indeling in groepjes en het wedstrijdprogramma te zien. Als je in het wedstrijdprogramma een specifieke zitting aanklikt krijg je het verslag ervan te zien. Als je op het vakje met het zittingnummer klikt krijg je de (tussen)stand na die zitting te zien. Dit uiteraard pas wanneer de betreffende informatie beschikbaar is.

Ook is het mogelijk om te kiezen voor de lijst met de namen van de deelnemers. Van daaruit kun je de persoonlijke pagina van een deelnemer kiezen; daarop staan alle te spelen wedstrijden vermeld.

We willen op die persoonlijke pagina ook een foto plaatsen van de auteur(s) van het programma, en een korte beschrijving van de werking van het programma. Deelnemers van wie het programma is toegelaten tot het toernooi zal nog om deze informatie worden gevraagd.

 

Het programma TOEVAL.

De afgelopen twee jaren is het deelnemersveld uitgebreid met een programma TOEVAL. Dit programma maakte een lijst met alle mogelijke geldige zetten, en koos daaruit een willekeurige zet.

 

Links.

The Susan page

 

De site van de maker van het spel. Een computerversie is alleen voor de Mac beschikbaar.

The game of Susan

Dit is een Engelse site met een summiere beschrijving en nog enkele andere links.

De Susan netwerk server

Een site waar je je kunt aanmelden om Susan per E-mail te spelen.

Kids Domain Mac Download

Een andere Engelse site waar de Mac-versie kan worden gedownload.