GAMEEND bericht
Dit bericht kan zowel door de Initiator als de Volger worden
verstuurd als deze de partij wil beeindigen. Dit kan als
het programma aan zet is en eigenlijk werd geacht een MOVE
bericht te sturen, of als antwoord op ontvangst van een GAMEEND
bericht. Als een programma niet aan zet is en geen GAMEEND heeft
ontvangen, mag het geen GAMEEND sturen om de partij te beeindigen, maar moet het wachten tot
het aan zet is.
Een reden om een partij te beeindigen is bijvoorbeeld omdat de
ingestelde speeltijd verstreken is, of bijvoorbeeld omdat het
aantal ingestelde zetten overschreden zou worden als hij zou doorspelen.
Layout
1 byte | 1 byte | 1 byte |
header | reden | stop code |
header | type bericht, altijd 'E' (hoofdletter) |
reden | '0' indien het damprogramma wil stoppen met de partij zonder dat hij een reden wil of kan geven, `0' mag dus altijd gebruikt worden; optioneel kunnen door het initiele GAMEEND bericht de volgende codes worden gebruikt: `1' (ik geef op), `2' (remise, bijvoorbeeld door zettenherhaling), '3' (ik win) |
stop code | '0' indien de huidige partij moet worden beëindigd, maar een volgende partij gestart mag worden; `1' indien het programma helemaal wil stoppen (dus ook geen volgende partij wil spelen) |
Voorbeeld
0----0----1----1----2----2----3----3----4----4----5----5----6----6
0----5----0----5----0----5----0----5----0----5----0----5----0----5
E00
Het programma wil stoppen met de huidige partij maar wil wel doorgaan met volgende partijen.
Verwerking bij ontvangst van een GAMEEND bericht
Bij ontvangst in plaats van een MOVE bericht:
- Indien de Volger dit bericht ontvangt met stop code `0' dan beeindigt hij de huidige partij, slaat hem eventueel op schijf op, en stuurt ter bevestiging een GAMEEND bericht terug. Als de Volger helemaal wil stoppen doet hij dit met stop code 1, anders met stop code 0. In het laatste geval gaat de Volger staan wachten op ontvangst van een GAMEREQ bericht.
- Indien de Volger dit bericht ontvangt met stop code `1' dan beeindigt hij de huidige partij, slaat hem eventueel op schijf op, en stuurt ter bevestiging een GAMEEND bericht terug met stop code 1. De Volger stopt met verder verwerken. Het programma kan dus beeindigd worden.
- Indien de Initiator dit bericht ontvangt met stop code `0' dan beeindigt hij de huidige partij, slaat hem eventueel op schijf op, en stuurt ter bevestiging een GAMEEND bericht terug. Als de Initiator helemaal wil stoppen doet hij dit met stop code 1, anders met stop code 0. In het laatste geval start de Initiator een nieuwe partij door het zenden van een GAMEREQ bericht.
- Indien de Initiator dit bericht ontvangt met stop code `1' dan beeindigt hij de huidige partij, slaat hem eventueel op schijf op, en stuurt ter bevestiging een GAMEEND bericht terug met stop code 1. De Initiator stopt met verder verwerken. Het programma kan dus beeindigd worden.
Bij ontvangst in antwoord op een zelf gestuurd GAMEEND bericht (reden is altijd '0'):
- Indien de Volger dit bericht ontvangt met stop code `0' gaat de Volger staan wachten op ontvangst van een GAMEREQ bericht.
- Indien de Volger dit bericht ontvangt met stop code `1' stopt de Volger met verder verwerken. Het programma kan dus beeindigd worden.
- Indien de Initiator dit bericht ontvangt met stop code `0' start de Initiator een nieuwe partij door het zenden van een GAMEREQ bericht.
- Indien de Initiator dit bericht ontvangt met stop code `1' stopt de Initiator met verder verwerken. Het programma kan dus beeindigd worden.