home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / crm_demo / p_pascal / worterat.pas < prev    next >
Pascal/Delphi Source File  |  1992-03-10  |  2KB  |  82 lines

  1. PROGRAM WorteRaten;
  2.  
  3. USES Lesen;
  4.  
  5. VAR    RateWort        : WortTyp;
  6.     KeineLustMehr    : BOOLEAN;
  7.  
  8.     (* Das Spiel *)
  9.     PROCEDURE Spiele(RateWort : WortTyp);
  10.     VAR    WortMaske,
  11.         Eingabe        : WortTyp;
  12.         Beenden        : BOOLEAN;
  13.         i            : 1..WortLaenge;
  14.  
  15.         (* Initialisierung *)
  16.         PROCEDURE Init(VAR Maske : WortTyp; Wort : WortTyp);
  17.         VAR    i    : 1..WortLaenge;
  18.         BEGIN
  19.             WRITELN('Rate das Wort! (*=Ende)');
  20.             Beenden    := FALSE;
  21.             Maske    := '';
  22.             FOR i:=1 TO LENGTH(Wort) DO
  23.                 Maske    := Maske + '.'
  24.         END;
  25.  
  26.     BEGIN
  27.         Init(WortMaske, RateWort);
  28.     
  29.         (* Bis ein Ende kommt... *)
  30.         WHILE NOT(Beenden) DO
  31.         BEGIN
  32.             (* Maske ausgeben *)
  33.             WRITELN('Bisher erraten: ', WortMaske);
  34.             (* Neue Eingabe *)
  35.             READLN(Eingabe);
  36.             (* Ende gewünscht? *)
  37.             IF Eingabe = '*' THEN
  38.             BEGIN
  39.                 KeineLustMehr    := TRUE;
  40.                 Beenden            := TRUE
  41.             END
  42.             ELSE
  43.             BEGIN
  44.                 (* Nur ein Zeichen eingegeben? *)
  45.                 IF LENGTH(Eingabe) = 1 THEN
  46.                 BEGIN
  47.                     (* Buchstabe in der Maske ersetzen *)
  48.                     FOR i:=1 TO LENGTH(RateWort) DO
  49.                         IF Eingabe[1] = RateWort[i] THEN
  50.                             WortMaske[i]    := Eingabe[1];
  51.                     (* Wort komplett? *)
  52.                     IF WortMaske = RateWort THEN
  53.                     BEGIN
  54.                         WRITELN('Das müßte es nun sein!');
  55.                         Beenden    := TRUE
  56.                     END
  57.                 END
  58.                 ELSE
  59.                 BEGIN
  60.                     (* Wort richtig erraten? *)
  61.                     IF Eingabe = RateWort THEN
  62.                     BEGIN
  63.                         WRITELN('Richtig!');
  64.                         Beenden    := TRUE
  65.                     END
  66.                     ELSE
  67.                         WRITELN('Leider falsch.')
  68.                 END
  69.             END
  70.         END
  71.     END;
  72.  
  73. BEGIN
  74.     KeineLustMehr    := FALSE;
  75.     (* Worte aus dem Datenbestand holen, bis keines mehr da ist! *)
  76.     RateWort        := HoleNaechstes;
  77.     WHILE (RateWort <> '') AND NOT(KeineLustMehr) DO
  78.     BEGIN
  79.         Spiele(RateWort);
  80.         RateWort    := HoleNaechstes
  81.     END
  82. END.