Pole.Mod 704 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. MODULE Pole;
  2. IMPORT Visual, Words;
  3. VAR word: Words.Word;
  4. done: BOOLEAN;
  5. PROCEDURE GameTurn;
  6. VAR L: CHAR;
  7. guess: BOOLEAN;
  8. BEGIN
  9. Visual.ShowWord(word);
  10. Visual.AskLetter(L);
  11. Words.ApplyLetter(word, L, guess);
  12. IF guess THEN Visual.Guessed(L) ELSE Visual.Failed END;
  13. IF Words.IsOpen(word) THEN done := TRUE END
  14. END GameTurn;
  15. PROCEDURE GameRound;
  16. BEGIN
  17. Words.RandomWord(word);
  18. done := FALSE;
  19. REPEAT GameTurn UNTIL done;
  20. Visual.ShowWord(word);
  21. Visual.GameOver
  22. END GameRound;
  23. PROCEDURE Run;
  24. VAR repeat: BOOLEAN;
  25. BEGIN
  26. REPEAT
  27. GameRound;
  28. Visual.AskRepeat(repeat)
  29. UNTIL ~repeat
  30. END Run;
  31. BEGIN
  32. Visual.Intro;
  33. IF ~Words.loaded THEN Visual.ShowWordsError END;
  34. Run
  35. END Pole.