1 NOEXPAND 2 RANDOMIZE 4 PRINT TAB(-1,0); 40 MAP1 X'WORD$ 41 MAP2 W$(14),S,1 42 MAP1 PATTERN$ 43 MAP2 P$(14),S,1 44 MAP1 UNUSED 45 MAP2 U(255),B,1 46 MAP1 USED$,S,27 50 Z=0:D=0 60 PRINT "DO YOU WANT INSTRUCTIONS (YES OR NO)"; 70 INPUT RESP$ 80 IF RESP$="N" OR RESP$="NO" THEN 200 90 IF RESP$<>"Y" AND RESP$<>"YES" THEN 60 100 PRINT " THIS IS THE GAME OF HANGMAN. YOU CHOSE THE" 110 PRINT "LANGUAGE THAT YOU WANT TO PLAY IN, AND I THINK" 120 PRINT "OF A WORD IN THAT LANGUAGE. YOU TRY TO GUESS, LETTER" 130 PRINT "BY LETTER, WHAT THE WORD IS. SIMPLE HUH?" 140 PRINT " WHEN I THINK OF A WORD, I WILL PRINT A LINE OF" 150 PRINT "DASHES WHICH CORRESPONDS TO THE NUMBER OF LETTERS IN" 160 PRINT "THE WORD." 170 PRINT " IF YOU GIVE UP, TYPE 'GIVE'. IF YOU WANT TO QUIT," 180 PRINT "SIMPLY TYPE 'QUIT'." 190 PRINT " A FEW SPECIAL INSTRUCTIONS:" 191 PRINT "FRENCH - THE ' IS COUNTED AS ONE LETTER," 192 PRINT " AND LETTERS ARE NOT ACCENTED" 200 PRINT "IN WHAT LANGUAGE WOULD YOU LIKE TO PLAY?" 210 PRINT "(STANDARD LANGUAGES INCLUDED ARE ENGLISH & FRENCH)" 240 INPUT FILE$ 250 LOOKUP FILE$,X 260 IF X<=0 ?"THE ";FILE$;" LANGUAGE IS NOT AVAILABLE. TRY AGAIN.":GOTO 210 300 PRINT "HAVE FUN!" 310 OPEN #1,FILE$,INPUT:M1=0 311 INPUT #1,USED$:IF EOF(1) THEN 312 ELSE M1=M1+1:GOTO 311 312 CLOSE #1 313 FOR I=1 TO M1:U(I)=I:NEXT 320 IF Z=M1 THEN 1340 330 W=INT((M1-Z)*RND(0)+1) 340 W1=U(W):FOR I=W TO M1-Z:U(I)=U(I+1):NEXT 350 Z=Z+1 390 P=0:M=0 400 OPEN #1,FILE$,INPUT 410 FOR I=1 TO W1:INPUT #1,USED$:NEXT I:X'WORDLEN=LEN(USED$):X'WORD$=USED$ 411 CLOSE #1 440 PATTERN$="" 450 FOR I=1 TO X'WORDLEN:P$(I)="-":NEXT I 460 PRINT TAB(-1,0); 480 PRINT "THE WORD IS ";PATTERN$ 500 USED$="" 510 PRINT "YOUR GUESS"; 520 R=0 530 INPUT GUESS$ 540 PRINT 550 IF GUESS$="GIVE" THEN 1100 560 IF GUESS$="QUIT" THEN 1310 570 GUESS$=LEFT$(GUESS$,1) 610 IF (ASC(GUESS$)>=ASC("A") AND ASC(GUESS$)<=ASC("Z")) OR GUESS$="'" THEN 660 620 PRINT "THAT IS NOT A VALID CHARACTER." 650 GOTO 510 660 IF INSTR(1,USED$,GUESS$) = 0 THEN 730 670 PRINT "YOU HAVE ALREADY USED THAT LETTER. GUESS AGAIN." 680 GOTO 510 730 USED$=USED$+GUESS$ 740 FOR I=1 TO X'WORDLEN 750 IF GUESS$<>W$(I) THEN 760 751 IF R=0 PRINT "RIGHT!":R=1 752 P$(I)=GUESS$ 760 NEXT 770 IF R THEN 1170 780 PRINT "WRONG." 790 M=M+1 791 ?TAB(-1,0); 800 ?"--------" 805 ?"I !" 810 ?"I O" 820 IF M=1 THEN 1030 840 IF M=2 ?"I I" 860 IF M=3 ?"I /I" 880 IF M=4 ?"I /I\" 900 IF M=5 ?"I \/I\" 920 IF M>5 ?"I \/I\/" 930 IF M<7 THEN 1030 940 ?"I I" 950 IF M=7 THEN 1030 960 IF M=8 ?"I /" 980 IF M=9 ?"I / \" 1000 IF M=10 ?"I \/ \" 1020 IF M=11 ?"I \/ \/" 1030 FOR I=1 TO 5-P 1040 ?"I" 1050 NEXT 1060 ?"------------" 1061 ?"IIIIIIIIIIII" 1062 ?"------------" 1070 IF M=1 OR M=6 OR M=7 LET P=P+1 1090 IF M<11 THEN 1240 1100 PRINT "YOU HAVE JUST BEEN HUNG." 1110 GOTO 1220 1170 IF INSTR(1,PATTERN$,"-") THEN 1240 1200 PRINT "YOU GOT IT!!" 1210 D=D+1 1220 PRINT"THE WORD WAS ";X'WORD$ 1230 GOTO 1270 1240 PRINT "THE WORD IS ";PATTERN$ 1250 PRINT "YOU HAVE USED ";USED$ 1260 GOTO 510 1270 PRINT "WOULD YOU LIKE TO PLAY AGAIN (YES OR NO)"; 1280 INPUT RESP$ 1281 PRINT TAB(-1,0); 1290 IF RESP$="Y" OR RESP$="YES" THEN 320 1300 IF RESP$<>"N" AND RESP$<>"NO" THEN 1270 1310 PRINT "YOU TOOK";LEN(USED$);"GUESSES." 1320 PRINT "YOU WERE HUNG";Z-D;"TIME(S)." 1330 GOTO 1370 1340 ?TAB(-1,0);:?"SORRY, BUT I'M OUT OF WORDS. IF YOU WANT TO START" 1350 PRINT "OVER, RERUN THE PROGRAM. THE WORDS WILL BE THE SAME," 1360 PRINT "BUT THEY WILL BE IN A DIFFERENT ORDER." 1370 PRINT "COME AGAIN SOON... IT WAS FUN!" 1380 CHAIN "DSK1:DEMO.RUN[20,20]"