| 
         Displaying  Source Code(s)   
  
        
 
         
        
          
             | 
            
             | 
           
          
             
              
                
                simple hangman-pascalsource 
                 
                -------------------------------------------------------------------------------- 
                 
                Description : Not Specified 
                 
                Code : 
                 
                Program Hanger; 
                {a simple hangman-pascalsource by Seabert SoftWare, 1996} 
                {comments & suggestions : jjtaks@cs.ruu.nl} 
                 
                Uses 
                Crt, WinDos; 
                 
                Var 
                Words: Array[1..100] of String; 
                Sizes: Array[1..100] of Integer; 
                PlayWord, ChLine, word: String[10]; 
                Ch: Char; 
                WordFile: Text; 
                i, j, lgt, Max, ChLgt: Integer; 
                 
                Function ReadFile( FileName: String): Boolean; 
                begin 
                if ( FileName = '') then 
                ReadFile := False 
                else 
                begin 
                ReadFile := True; 
                i := 0; 
                Assign( WordFile, FileName) 
                Reset( WordFile); 
                While( not( EoF( WordFile))) do 
                begin 
                Inc( i); 
                ReadLn( WordFile, word); 
                Words[i] := word; 
                ReadLn( WordFile, lgt); 
                Sizes[i] := lgt; 
                end; 
                Max := i; 
                Close( WordFile); 
                end; 
                end; 
                 
                Function ChooseWord: Boolean; 
                begin 
                Repeat 
                Randomize; 
                j := Random( Max); 
                Until (( j > 0) and ( j <= Max)); 
                PlayWord := Words[j]; 
                ChLgt := Sizes[j]; 
                if ( PlayWord <> '') then 
                ChooseWord := True 
                else 
                ChooseWord := False; 
                end; 
                 
                Procedure InitArrays; 
                begin 
                for i := 1 to 100 do 
                begin 
                Words[i] := ''; 
                Sizes[i] := 0; 
                end; 
                end; 
                 
                Procedure GamePlay; 
                 
                Procedure ClrWord; 
                begin 
                For i := 1 to 10 do 
                PlayWord[i] := ''; 
                end; 
                 
                Procedure SetChLine; 
                begin 
                For i := 1 to 10 do 
                ChLine[i] := '-'; 
                end; 
                 
                begin 
                SetChLine; 
                Repeat 
                GoToXY( 15, 3); 
                For i := 1 to Max do 
                Write(ChLine[i]); 
                GoToXY( 1, 3); 
                Write('Enter a character: '); 
                ReadLn( Ch) 
                For i := 1 to Max do 
                begin 
                if ( Ch = PlayWord[i]) then 
                ChLine[i] := Ch; 
                end; 
                if ( ChLine = PlayWord) then 
                begin 
                GoToXY( 15, 1); 
                Write('You got it!'); 
                end; 
                Until ( ChLine = PlayWord); 
                ClrScr; 
                ClrWord; 
                SetChLine; 
                end; 
                 
                Begin 
                ClrScr; 
                Repeat 
                InitArrays; 
                if ( ReadFile( 'WORDS.TXT') = True) then 
                begin 
                if ( ChooseWord = True) then 
                GamePlay 
                else 
                begin 
                WriteLn('No words found.'); 
                Halt(1); 
                end; 
                end 
                else 
                begin 
                WriteLn('Unable to read file WORDS.TXT.'); 
                Halt(1); 
                end; 
                Write(' Again? '); 
                ReadLn( Ch); 
                Until ( UpCase( Ch) = 'N'); 
                End. 
                 
                { WORDS.TXT ( example): 
                ape 
                3 
                book 
                4 
                circle 
                6 
                } 
  | 
               
             
             | 
           
           
           |