program invers;

{
  We slaan het bord op door middel van een array.
  De locatie bord[1, 1] is bijvoorbeeld linksboven, en
  bord[1, 6] is rechtsboven.
  We slaan er 0 in op als de locatie geel is,
  1 indien rood, 2 indien geel en omgedraaid,
  en 3 indien rood en omgedraaid.
  
  Je hoeft deze array niet te gebruiken, je mag natuurlijk
  een eigen datastructuur bedenken.
}
var bord : array[1 .. 6, 1 .. 6] of byte;
    ikbengeel : boolean; // Een variable waarin staat of je geel bent of niet.

{
  Initieer het bord.
}
procedure init;
begin
  {
    Standaard zijn we rood
  }
  ikbengeel := false;
  
  {
    Vul het bord met de standaardwaarden.
    Het kan slimmer, en is ook nog niet compleet.
  }
  bord[1, 1] := 0;
  bord[1, 2] := 1;
  bord[2, 1] := 1;
  bord[2, 2] := 0;
  { ... }
  bord[6, 6] := 0;
end;

{
  Doe een zet
}
procedure doezet(zet : char);
begin
  {
    Hier moet code komen om de zet uit te voeren.
    De zet is opgeslagen in de variable zet.
  }
end;

{
  Speel het spel
}
procedure speel;
var zet : char;
begin
  while true do
  begin
    {
      Lees de zet uit, en controleer
      of deze Z of Y of een normale zet is.
    }
    readln(zet);
    if zet = 'Z' then
      break;
    if zet = 'Y' then
      ikbengeel := true;
    if (zet <> 'Z') and (zet <> 'Y') then
      doezet(zet);
    
    {
      Bereken een zet en sla deze op in de variable zet.
      Nu schrijven we gewoon een A weg.
    }
    zet := 'A';
    writeln(zet);
    flush(output); // Vergeet deze regel niet!!!
  end;
end;

begin
  init;
  speel;
end.


syntax highlighted by Code2HTML, v. 0.9.1