Visual.Mod 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. MODULE Visual;
  2. IMPORT Words, In, Out;
  3. PROCEDURE Intro*;
  4. BEGIN Out.Ln; Out.Ln;
  5. Out.String(' Добро пожаловать в игру'); Out.Ln; Out.Ln;
  6. Out.String(' " П О Л Е Ч У Д Е С "'); Out.Ln; Out.Ln
  7. END Intro;
  8. PROCEDURE ShowWord*(VAR word: Words.Word);
  9. VAR i: INTEGER;
  10. BEGIN Out.Ln;
  11. FOR i := 0 TO 40 DO Out.Char('-') END; Out.Ln; Out.Ln;
  12. Out.String(' ');
  13. FOR i := 0 TO word.len - 1 DO
  14. Out.String(' [');
  15. IF word.open[i] THEN Out.Char(word.L[i]) ELSE Out.Char('_') END;
  16. Out.Char(']')
  17. END;
  18. Out.Ln; Out.Ln
  19. END ShowWord;
  20. PROCEDURE AskLetter*(VAR L: CHAR);
  21. VAR s: ARRAY 2 OF CHAR;
  22. BEGIN
  23. Out.String(' Буква: '); In.Line(s); L := s[0];
  24. WHILE ~(('А' <= L) & (L <= 'Я') OR
  25. ('а' <= L) & (L <= 'я') OR
  26. (L = 'Ё') OR (L = 'ё')) DO
  27. Out.String(' Какая? '); In.Line(s); L := s[0]
  28. END;
  29. IF ('а' <= L) & (L <= 'я') THEN
  30. L := CHR(ORD(L) - ORD('а') + ORD('А'))
  31. ELSIF (L = 'Ё') OR (L = 'ё') THEN L := 'Е'
  32. END
  33. END AskLetter;
  34. PROCEDURE AskRepeat*(VAR repeat: BOOLEAN);
  35. VAR s: ARRAY 2 OF CHAR;
  36. c: CHAR;
  37. BEGIN
  38. REPEAT Out.String(' Повторить игру? [д/н] '); In.Line(s); c := s[0]
  39. UNTIL (c = 'Д') OR (c = 'д') OR (c = 'Н') OR (c = 'н') OR
  40. (c = 'y') OR (c = 'n');
  41. repeat := (c = 'Д') OR (c = 'д') OR (c = 'y')
  42. END AskRepeat;
  43. PROCEDURE Guessed*(L: CHAR);
  44. BEGIN Out.String(' Есть такая буква! Откройте букву "');
  45. Out.Char(L); Out.String('".'); Out.Ln
  46. END Guessed;
  47. PROCEDURE Failed*;
  48. BEGIN Out.String(' Нет! Такой буквы здесь нет!'); Out.Ln
  49. END Failed;
  50. PROCEDURE GameOver*;
  51. BEGIN Out.String(' Игра окончена!'); Out.Ln
  52. END GameOver;
  53. PROCEDURE ShowWordsError*;
  54. BEGIN Out.String('Не найден файл со словами "words.dat".'); Out.Ln
  55. END ShowWordsError;
  56. END Visual.