-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHANGMAN.HPB
138 lines (138 loc) · 3.6 KB
/
HANGMAN.HPB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
10 REM **HANGMAN** MULTI-LANGUAGE HANGMAN GAME
20 REM AUTHOR: LOWELL VON EGGER 02/16/73
30 FILES *
40 DIM B$(27),W$(14),P$(14),U$(27),W(100),G$(4)
50 Z=D=0
60 PRINT "DO YOU WANT INSTRUCTIONS (YES OR NO)";
70 INPUT B$
80 IF B$="NO" THEN 220
90 IF B$#"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. SIMPLY 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:"
200 PRINT "SPANISH - THE ' IS COUNTED AS ONE LETTER, AND THE"
210 PRINT " -Ch- IS COUNTED AS TWO."
220 PRINT "IN WHAT LANGUAGE WOULD YOU LIKE TO PLAY?"
230 PRINT "(ENGLISH, FRENCH, SPANISH, OR GERMAN)"
240 B$="*"
250 INPUT B$
260 ASSIGN B$(1,6),1,A
270 IF A#3 THEN 300
280 PRINT "THE ";B$[2];" LANGUAGE IS NOT AVAILABLE. TRY AGAIN"
290 GOTO 230
300 PRINT "HAVE FUN!!"
310 READ #1;M1
320 Z=Z+1
330 IF Z>M1 THEN 1340
340 W=INT(M1*RND(1)+1)
350 FOR A=1 TO Z-1
360 IF W(A)=W THEN 340
370 NEXT A
380 W[Z]=W
390 P=M=0
400 READ #1,1;M1
410 FOR A=1 TO W
420 READ#1;W$
430 NEXT A
440 P$=""
450 FOR A=1 TO LEN(W$)
460 P$[A,A]="-"
470 NEXT A
480 PRINT "THE WORD IS ";P$
490 B$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
500 U$=""
510 PRINT "YOUR GUESS?";
520 R=0
530 ENTER 30,A,G$
540 PRINT
550 IF G$="GIVE" THEN 1100
560 IF G$="QUIT" THEN 1310
570 G$=G$[1,1]
580 IF A#-256 THEN 610
590 PRINT "HURRY UP!"
600 GOTO 510
610 FOR A=1 TO 27
620 IF G$=B$[A,A] THEN 660
630 NEXT A
640 PRINT "THAT IS NOT A VALID CHARACTER."
650 GOTO 510
660 C=A
670 FOR A=1 TO LEN(U$)
680 IF G$=U$[A,A] THEN 710
690 NEXT A
700 GOTO 730
710 PRINT "YOU HAVE ALREADY USED THAT LETTER. GUESS AGAIN."
720 GOTO 510
730 U$[A,A]=G$
740 FOR A=1 TO LEN(W$)
750 IF G$=W$[A,A] THEN 1120
760 NEXT A
770 IF R#0 THEN 1170
780 PRINT "WRONG."
790 M=M+1
800 PRINT "--------I I"
810 PRINT "I O"
820 GOTO M OF 1030,840,860,880,900
830 GOTO 920
840 PRINT "I I"
850 GOTO 930
860 PRINT "I /I"
870 GOTO 930
880 PRINT "I /I\"
890 GOTO 930
900 PRINT "I \/I\"
910 GOTO 930
920 PRINT "I \/I\/"
920 IF M<7 THEN 1030
940 PRINT "I I"
950 GOTO M-6 OF 1030,960,980,1000,1020
960 PRINT "I /"
970 GOTO 1030
980 PRINT "I / \"
990 GOTO 1030
1000 PRINT "I \/ \"
1010 GOTO 1030
1020 PRINT "I \/ \/"
1030 FOR A=1 TO 5-P
1040 PRINT "I"
1050 NEXT A
1060 PRINT "------------IIIIIIIIIIII------------"
1070 IF M#1 AND M#6 AND M#7 THEN 1090
1080 P=P+1
1090 IF M<10 THEN 1240
1100 PRINT "YOU HAVE JUST BEEN HUNG."
1110 GOTO 1220
1120 IF R=1 THEN 1140
1130 PRINT "RIGHT!"
1140 P$[A,A]=G$
1150 R=1
1160 GOTO 760
1170 FOR A=1 TO LEN(P$)
1180 IF P$[A,A]="-" THEN 1240
1190 NEXT A
1200 PRINT "YOU GOT IT!!"
1210 D=D+1
1220 PRINT "THE WORD WAS ";W$
1230 GOTO 1270
1240 PRINT "THE WORD IS ";P$
1250 PRINT "YOU HAVE USED ";U$
1260 GOTO 510
1270 PRINT "WOULD YOU LIKE TO PLAY AGAIN (YES OR NO)";
1280 INPUT B$
1290 IF B$="YES" THEN 320
1300 IF B$#"NO" THEN 1270
1310 PRINT "YOU TOOK";LEN(U$);"GUESSES."
1320 PRINT "YOUR WERE HUNG";Z-D;"TIME(S)."
1330 GOTO 1370
1340 PRINT "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 END