home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug003.ark / HANG.BAS < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  4.9 KB  |  216 lines

  1.     REM----------------------------------------------------
  2.     REM        H  A  N  G  M  A  N
  3.     REM----------------------------------------------------
  4.  
  5.     REM            JUNE 16, 1977
  6.  
  7.     NUMBER.OF.WORDS=50
  8. 30 DIM P$(12,12), L$(20), D$(20), N$(26), U(NUMBER.OF.WORDS)
  9.     PRINT:PRINT:PRINT
  10.     PRINT TAB(10);"HELLO FRIENDS . . ."
  11.     PRINT:PRINT
  12.     PRINT TAB(10);"LET'S PLAY HANGMAN"
  13.     PRINT TAB(10);"WHAT'S YOUR NAME ";
  14.     INPUT NAME$
  15.     RANDOMIZE
  16.     PRINT
  17.     PRINT TAB(10);"THANX, ";NAME$
  18.     PRINT:PRINT
  19.     FIRST.TIME.FLAG=1
  20. 40 C = 1
  21. 50 FOR I = 1 TO 20
  22.    D$(I) = "-"
  23.    NEXT I
  24.    FOR I = 1 TO 26
  25.    N$(I) = ""
  26.    NEXT I
  27.    M = 0
  28. 70 FOR I = 1 TO 12
  29.        FOR J = 1 TO 12
  30.        P$(I,J) = " "
  31.        NEXT J
  32.    NEXT I
  33. 80 FOR I = 1 TO 12
  34.    P$(I,1) = "X"
  35.    NEXT I
  36. 90 FOR I = 1 TO 7
  37.    P$(1,I) = "X"
  38.    NEXT I
  39.    P$(2,7) = "X"
  40. 95    REM
  41.     IF C<NUMBER.OF.WORDS THEN \
  42.         GOTO 100 :\
  43.     ELSE \
  44.         PRINT TAB(10);"YOU DID ALL THE WORDS!!" :\
  45.         STOP
  46. 100 Q = INT(NUMBER.OF.WORDS*RND+1)
  47. 110    REM
  48.     IF U(Q)=1 THEN \
  49.         GOTO 100 :\
  50.     ELSE \
  51.         U(Q)=1 :\
  52.         C=C+1 :\
  53.         RESTORE :\
  54.         T1=0
  55.     FOR I = 1 TO Q
  56.     READ A$
  57.     NEXT I
  58. 160 L = LEN(A$)
  59.     FOR I = 1 TO L
  60.     L$(I) = MID$(A$,I,1)
  61.     NEXT I
  62.     IF FIRST.TIME.FLAG=1 THEN \
  63.         PRINT TAB(10);"OK.  I'VE GOT A WORD." :\
  64.         FIRST.TIME.FLAG=0 :\
  65.         GOTO 200
  66. 170 PRINT "HERE ARE THE LETTERS YOU USED:"
  67.     FOR I = 1 TO 26
  68.         PRINT N$(I);
  69.         IF N$(I+1) = "" THEN 200
  70.         PRINT ",";
  71.     NEXT I
  72. 200 PRINT
  73.     PRINT
  74.     FOR I = 1 TO L
  75.         PRINT D$(I);
  76.     NEXT I
  77.     PRINT
  78.     PRINT
  79. 210 INPUT "WHAT LETTER DO YOU GUESS  ";G$
  80.     G$=LEFT$(G$,1)
  81.     R = 0
  82. 220 FOR I = 1 TO 26
  83.         IF N$(I) = "" THEN 250
  84.         IF G$ = N$(I) THEN 240
  85.     NEXT I
  86.     PRINT "PROGRAM ERROR.  RUN AGAIN"
  87.     STOP
  88. 240 PRINT "YOU GUESSED THAT LETTER BEFORE"
  89.     GO TO 170
  90. 250 N$(I) = G$
  91.     T1 = T1 + 1
  92. 260 FOR I = 1 TO L
  93.         IF L$(I) = G$ THEN 280
  94. 270 NEXT I
  95.     IF R = 0 THEN GOTO 290 ELSE GOTO 300
  96. 280 D$(I) = G$
  97.     R = R + 1
  98.     GO TO 270
  99. 290 M = M + 1
  100.     GO TO 400
  101. 300 FOR I = 1 TO L
  102.         IF D$(I) = "-" THEN 320
  103. 310 NEXT I
  104.     GO TO 390
  105. 320 PRINT
  106.     PRINT TAB(10);"GOOD.  YOU GOT A LETTER."
  107.     PRINT TAB(10);"NOW YOU GET TO TRY FOR THE WORD!"
  108.     FOR I = 1 TO L
  109.         PRINT D$(I);
  110.     NEXT I
  111.     PRINT
  112.     PRINT
  113. 330    REM
  114.     PRINT TAB(10);"WHAT IS YOUR GUESS FOR THE WORD  ";
  115.     INPUT B$
  116.     IF B$="NONE" THEN \
  117.         GOTO 170
  118. 340 IF B$ = A$ THEN 360
  119. 350 PRINT "WRONG.  TRY ANOTHER LETTER."
  120.     PRINT
  121.     GOTO 170
  122. 360 PRINT "RIGHT!!  IT TOOK YOU ";T1;"GUESSES!"
  123. 370 INPUT "WANT ANOTHER WORD  ";W$
  124.     IF LEFT$(W$,1)="Y" THEN GOTO 50
  125. 380 PRINT
  126.     PRINT "IT'S BEEN FUN!  BYE FOR NOW."
  127.     STOP
  128. 390 PRINT "YOU FOUND THE WORD!" 
  129.     GO TO 370
  130. 400 PRINT
  131.     PRINT
  132.     PRINT "SORRY, THAT LETTER ISN'T IN THE WORD."
  133. 410 ON M GOTO 415,420,425,430,435,440,445,450,455,460
  134. 415 PRINT "FIRST, WE DRAW A HEAD"
  135.     GO TO 470
  136. 420 PRINT "NOW WE DRAW A BODY"
  137.     GO TO 470
  138. 425 PRINT "NEXT WE DRAW AN ARM"
  139.     GO TO 470
  140. 430 PRINT "THIS TIME IT'S THE OTHER ARM"
  141.     GO TO 470
  142. 435 PRINT "NOW, LET'S DRAW THE RIGHT LEG"
  143.     GO TO 470
  144. 440 PRINT "THIS TIME WE DRAW THE LEFT LEG"
  145.     GO TO 470
  146. 445 PRINT "NOW WE PUT UP A HAND"
  147.     GO TO 470
  148. 450 PRINT "NEXT THE OTHER HAND"
  149.     GO TO 470
  150. 455 PRINT "NOW WE DRAW ONE FOOT"
  151.     GO TO 470
  152. 460 PRINT "HERE'S THE OTHER FOOT -- YOU'RE HUNG!!"
  153. 470 ON M GO TO 480,490,500,510,520,530,540,550,560,570
  154. 480 P$(3,6) = "-"
  155.     P$(3,7) = "-"
  156.     P$(3,8) = "-"
  157.     P$(4,5) = "("
  158.     P$(4,6) = "."
  159.     P$(4,8) = "."
  160.     P$(4,9) = ")"
  161.     P$(5,6) = "-"
  162.     P$(5,7) = "-"
  163.     P$(5,8) = "-"
  164.     GO TO 580
  165. 490 FOR I = 6 TO 9
  166.         P$(I,7) = "X"
  167.     NEXT I
  168.     GO TO 580
  169. 500 FOR I = 4 TO 7
  170.         P$(I,I-1) = "\"
  171.     NEXT I
  172.     GO TO 580
  173. 510 P$(4,11) = "/"
  174.     P$(5,10) = "/"
  175.     P$(6,9) = "/"
  176.     P$(7,8) = "/"
  177.     GO TO 580
  178. 520 P$(10,6) = "/"
  179.     P$(11,5) = "/"
  180.     GO TO 580
  181. 530 P$(10,8) = "\"
  182.     P$(11,9) = "\"
  183.     GO TO 580
  184. 540 P$(3,11) = "\"
  185.     GO TO 580
  186. 550 P$(3,3) = "/"
  187.     GO TO 580
  188. 560 P$(12,10) = "\"
  189.     P$(12,11) = "-"
  190.     GO TO 580
  191. 570 P$(12,3) = "-"
  192.     P$(12,4) = "/"
  193. 580 FOR I = 1 TO 12
  194.         FOR J = 1 TO 12
  195.         PRINT P$(I,J);
  196.         NEXT J
  197.     PRINT
  198.     NEXT I
  199.     PRINT
  200.     PRINT
  201.     IF M = 10 THEN GOTO 600 ELSE GOTO 170
  202. 600 PRINT "SORRY, YOU LOSE.  THE WORD WAS ";A$
  203. 610 PRINT "YOU MISSED THAT ONE.  DO YOU ";
  204.     GO TO 370
  205. REM
  206. DATA "GUM","SIN","FOR","CRY","LUG","BYE","FLY"
  207. DATA "UGLY","EACH","FROM","WORK","TALK","WITH","SELF"
  208. DATA "PIZZA","THING","FEIGN","FIEND","ELBOW","FAULT","DIRTY"
  209. DATA "BUDGET","SPIRIT","QUAINT","MAIDEN","ESCORT","PICKAX"
  210. DATA "EXAMPLE","TENSION","QUININE","KIDNEY","REPLICA","SLEEPER"
  211. DATA "TRIANGLE","KANGAROO","MAHOGANY","SERGEANT","SEQUENCE"
  212. DATA "MOUSTACHE","DANGEROUS","SCIENTIST","DIFFERENT","QUIESCENT"
  213. DATA "MAGISTRATE","ERRONEOUSLY","LOUDSPEAKER","PHYTOTOXIC"
  214. DATA "MATRIMONIAL","PARASYMPATHOMIMETIC","THIGMOTROPISM"
  215. END
  216.