10 REM HANGM.ECB 20 REM ....HANGMAN Revised 02-14-81 R.E.H. 100 REM ....** WRITTEN BY MIKE MCAMIS ** 110 REM ....STOLEN BY T. HALL, B. REID, AND R. CASSELS 120 REM ....THE HANGMAN HAS BEEN IMPLEMENTED, COURTESY 130 REM ....OF THE ORIGINAL YFNSS. 140 PRINT "&K" 160 DIM A$(20),B(20),C$(20),G$(20),B$(40) 170 DIM A(20),H(1),W$(20),G1$(1) 180 DIM F(10),O$(10),Q$(20),V(20) 190 LET Q$=" " 195 GOSUB 1500 200 LET Q$="\ O / -I- / \ - -" 205 CURSOR 4,20: PRINT "HHHHHHHHHHHHHHHHHHHHHHH" 210 CURSOR 5,20: PRINT "HHH H A N G M A N HHH" 220 CURSOR 6,20: PRINT "HHHHHHHHHHHHHHHHHHHHHHH" 240 CURSOR 7,22: PRINT "LET'S PLAY HANGMAN.": CURSOR 10,1 260 PRINT " I THINK OF A WORD, YOU GUESS LETTERS IN THE WORD." 270 PRINT " YOU EITHER GUESS OR HANG." 280 PRINT " YOU HAVE 10 INCORRECT GUESSES BEFORE YOU HANG." 290 PRINT "&J GOOD LUCK." 300 PRINT "&JPick one: (1) Easy words (2) Hard words ---=>"; 310 INPUT (1,0)P: IF P=1 OR P=2 THEN 320 ELSE 300 320 LET W7$="ies": PRINT 330 LET L7$="s." 340 LET H(1)=1 350 IF P=1 THEN RESTORE 1640 ELSE RESTORE 3000 360 FOR J=1 TO 10: READ F(J): NEXT J 370 LET O$="OI\/----\/" 380 READ N9 390 LET N=0 400 LET N2=0 410 FOR J=1 TO 20 420 LET Q$(J,J)=CHR(32) 430 NEXT J 440 LET H=RND(0) 450 LET H1=H*10000 460 LET Q=H1-INT(H1) 470 LET I=INT((Q*N9)+.5) 480 FOR J=1 TO I 490 READ A$ 500 NEXT J 505 LET L9=LEN(A$) 510 FOR J=1 TO L9: LET A(J)=ASC(A$(J,J)): NEXT J 520 LET G$=" ": LET B$=G$ 530 FOR I=1 TO L9 540 LET H(1)=A(I) 550 LET G$(I,I)=CHR(H(1)) 560 LET W$=G$ 570 NEXT I 580 LET A=L9 600 LET C$="--------------------" 620 LET X=10 630 LET N=1 640 LET N1=0 650 REM ........DON"T PRINT GUESSES 660 IF Q=1 THEN 720 670 PRINT " The word is "; 680 FOR J=1 TO L9 690 PRINT C$(J,J);" "; 700 NEXT J 710 PRINT 720 LET Q=0 730 INPUT (1,0)" YOUR GUESS ---=>",G1$ 740 LET G1=ASC(G1$) 750 IF G1$=A$ THEN 1280 760 FOR K=1 TO L9 770 IF G1=ASC(G$(K,K)) THEN 930 780 NEXT K 790 FOR L=1 TO N 800 IF G1=ASC(B$(L,L)) THEN 810 ELSE 830 810 PRINT : PRINT "#### NO...YOU TRIED THIS BEFORE. ####" 820 GOTO 850 830 NEXT L 840 PRINT : PRINT " NO" 850 LET X=X-1 860 LET N2=N2+1 870 LET Q=1 880 LET Q$(F(N2),F(N2))=O$(N2,N2) 890 IF X=0 THEN 910 900 GOSUB 1490 910 GOSUB 1040 920 GOTO 1010 930 PRINT : PRINT " RIGHT" 940 FOR L=K TO L9 950 IF G$(L,L)=G1$ THEN 960 ELSE 990 960 LET C$(L,L)=G1$ 970 LET G$(L,L)="=" 980 LET N1=N1+1 990 NEXT L 1000 GOSUB 1040 1010 IF N1=A THEN 1280 1020 IF X=0 THEN 1240 1030 GOTO 650 1040 LET V=ASC(G1$) 1050 IF V(1)>1 THEN 1180 1060 LET N=N+1 1070 LET B(N)=V(1) 1080 LET B$(N,N)=CHR(G1) 1090 FOR I=1 TO N-1 1100 IF B(N-I+1)>=B(N-I) THEN 1170 1110 LET G1$=B$(N-I,N-I) 1120 LET B$(N-I)=B$(N-I+1) 1130 LET B$(N-I+1)=G1$ 1140 LET A5=B(N-I) 1150 LET B(N-I)=B(N-I+1) 1160 LET B(N-I+1)=A5 1170 NEXT I 1180 PRINT " You have used "; 1190 FOR L=1 TO N 1200 PRINT B$(L,L);"."; 1210 NEXT L 1220 IF N>7 THEN PRINT 1230 RETURN 1240 PRINT " YOU HAVE BEEN HUNG!" 1250 LET L8=L8+1 1260 GOSUB 1490 1270 GOTO 1300 1280 PRINT "&K": CURSOR 6,1: PRINT TAB(21);"*************" 1285 PRINT TAB(20);"*** YOU WIN ***": PRINT TAB(21);"*************" 1290 LET W8=W8+1: PRINT 1300 PRINT " THE WORD WAS "; 1310 FOR J=1 TO L9 1320 PRINT W$(J,J); 1330 NEXT J 1340 PRINT : PRINT 1350 INPUT (1,0)" Do you want to try another word ---=>",T$ 1370 PRINT : LET T$=T$+"Y" 1380 IF T$(1,1)="Y" THEN 300 ELSE PRINT 1390 IF W8<>1 THEN 1410 1400 LET W7$="y" 1410 IF L8<>1 THEN 1430 1420 LET L7$="." 1430 PRINT " You retire with a record of";W8;" Victor";W7$ 1440 PRINT " and ";L8;" Defeat";L7$ 1450 IF W8>0 THEN 1470 1460 PRINT " BETTER LUCK NEXT TIME." 1470 PRINT " Thanks for playing HANGMAN." 1480 GOTO 5000 1490 IF X>0 THEN 1620 1500 PRINT " -----" 1510 PRINT " I I" 1520 FOR I=1 TO 4 1530 PRINT " I "; 1540 FOR J=1 TO 5 1545 LET J1=5*(I-1)+J 1550 LET P$=Q$(J1,J1) 1555 PRINT P$; 1560 NEXT J 1570 PRINT 1580 NEXT I 1590 PRINT " I" 1600 PRINT " --------" 1610 RETURN 1620 PRINT " YOU HAVE ";X;" MORE GUESSES." 1630 RETURN 1640 DATA 3,8,14,12,7,9,16,20,1,5 1650 REM ...DATA "0","I","\","/","-","-","-","-","\","/" 1660 DATA 110 1670 DATA "BATTLE","CATTLE","PENNY","SUDDEN","ARMY","CASTLE" 1680 DATA "SHELTER","WELCOME","BETWEEN","BUCKET","FINISH" 1690 DATA "QUIET","IDEA","VIOLIN","USUAL","MAID","MAIN" 1700 DATA "PAID","TRAIL","GATE","HATE","SAFE","SHADE" 1710 DATA "STATE","TRADE","WAVE","STAGE","GAY","NEIGHBOR" 1720 DATA "LAZY","PARADE","BEAT","CREAM","TEAM","DREAM" 1730 DATA "LEAST","LEAD","LEAF","SPEAK","STREAM","CREEK" 1740 DATA "KNEE","SEEK","NIECE","SECRET","MACHINE","POLICE" 1750 DATA "FLIGHT","JET","TOP","SUCKS","SHOOTS","GAS" 1760 DATA "YELLOW","AUNT","SNAIL","ODD","BLADES","PERSUADE" 1770 DATA "LECTURE","FIGURE","CHUCKLE","TRAVEL","WHILE" 1780 DATA "DEPEND","PRIVATE","SCHOOL","SECTION","CUSHION" 1790 DATA "MATTRESS","PILLOW","SKILLFULL","GARDEN","TRAIN" 1800 DATA "ROADSTER","CANVAS","FLAG","SOURDOUGH","BRILLIANT" 1810 DATA "LYNX","SLEEP","WHICH","BERTH","CONVERTABLE" 1820 DATA "QUIZ","FLY","WEPT","BRISK","ACRE","BANK","BUNK" 1830 DATA "COB","DREW","ENIGMA","GRAVY","HARK","IRK" 1840 DATA "LARK","MILK","NASTY","ORANGE","SINK","TRAWL" 1850 DATA "UNCLE","VAST","WAND","TALL","TANK","TAME","TASK" 1860 DATA "ZERO" 1970 DATA A,A,A,A,A,A,"***" 1980 DATA 3,8,14,12,7,9,16,20,1,5 3000 DATA 3,8,14,12,7,9,16,20,1,5 3010 DATA 280 3020 DATA "ABATE","ABERRATION","ABET","ABEYANCE","ABSTEMIOUS" 3030 DATA "ABSTRUSE","ACRIMONIOUS","ACRE","ACUMEN","ADAMANT" 3040 DATA "AESTHETIC","AFFABLE","AGNOSTIC","ALACRITY" 3050 DATA "ALLEGORY","ALLEVIATE","ALTERCATION","AMITY" 3060 DATA "ANACHRONISM","ANALOGY","ANATHEMA","APATHY","APT" 3070 DATA "APOSTATE","ARBITRARY","ASCETIC","ASKANCE","ASKEW" 3080 DATA "ASPERITY","ASSIDUOUS","ASSUAGE","ATAVISM","AUGMENT" 3090 DATA "AUSPICIOUS","AUTHENTIC","AVARACE","AVERSE","AVID" 3100 DATA "BANAL","BELLICOSE","BENIGN","BIGOTED","BUCOLIC" 3110 DATA "BUMPTIOUS","BIOLOGY","BENIFICARY","BENIFITS" 3200 DATA "CALLOUS","CALUMNY","CANDID","CANINE","CANTANKEROUS" 3210 DATA "CAPTIOUS","CAUSTIC","CHARLATAN","CHASTISE","CITE" 3220 DATA "CHIMERICAL","CIRCUMVENT","CLANDESTINE","CLEMENT" 3230 DATA "COERCE","COGENT","COLLABORATE","COMELY","CONCUR" 3240 DATA "COMPATIBLE","CONDOLENCE","CONDUCIVE","CONJECTURE" 3250 DATA "CONNIVE","CONNOISSEUR","CONSTRUE","CONTRITE" 3260 DATA "CONTUMELY","CONVENIENCE","CONVIVAL","COPIOUS" 3270 DATA "CORROBORATE","CUMBROUS","CURSORY","CURTAIL" 3280 DATA "CONDONE","CONSUMATE","CREDENCE","CRYOGENIC","CILIA" 3290 DATA "CANTO","CANTICLE","CORACLE" 3300 DATA "DECORUM","DEFERENCE","DEMUR","DEMURE","DEPRECIATE" 3310 DATA "DERELICT","DEROGATORY","DEVIATE","DEVIOUS" 3320 DATA "DEXTEROUS","DIDACTIC","DIFFIDENT","DILETTANTE" 3330 DATA "DILEMMA","DISCOMFITURE","DISPARAGE","DISPARITY" 3340 DATA "DOCILE","DOGMATIC","DRASTIC","DUPLICITY","DIVULGE" 3350 DATA "DESULTORY","DILATORY","DEDICATE","DIFFERENTLY" 3400 DATA "EFFICACIOUS","EFFRONTERY","EGREGIOUS","ELIXIR" 3410 DATA "EMACIATED","EMANATE","EMULATE","ENHANCE","ENIGMA" 3420 DATA "EPICURE","EPITAPH","EPITHET","EPITOME","EQUITABLE" 3430 DATA "EQUIVOCAL","ERODE","ERUDITE","ESOTERIC","ESTRANGE" 3440 DATA "EULOGY","EUPHONY","EXACERBATE","EXECRATION","EXIT" 3450 DATA "EXONERATE","EXPATIATE","EXPATRIATE","EXPEDIENT" 3460 DATA "EXPIATE","EXTEMPORIZE","EXTENUATE","EXTIRPATE" 3470 DATA "EFFIGY","EXPUNGE","EMOULENT","EXIGENCY","EMBRYONIC" 3500 DATA "FACETIOUS","FACTIOUS","FALLIBLE","FATUOUS","FAMOUS" 3510 DATA "FEASIBLE","FELICITOUS","FESTOON","FETISH","FIASCO" 3520 DATA "FILCH","FLUCTUATE","FOIBLE","FORENSIC","FURTIVE" 3530 DATA "FORMIDABLE","FORTUITOUS","FRACTIOUS","FRUGAL" 3540 DATA "FRUSTRATE","FURTIVE","FALLACY","FUTILE","FLANGE" 3550 DATA "FILLIBUSTER","FLY","FLU","FRY" 3600 DATA "GOSSAMER","GREGARIOUS","GENERIC","GIRAFFE" 3700 DATA "HACKNEYED","HAGGARD","HALCYON","HEINOUS","HERESY" 3710 DATA "HIBERNATE","HILARIOUS","HISTRIONIC","HOAX","HUMID" 3720 DATA "HISTRIONIC","HOODWINK","HYBRID","HYPERBOLE" 3730 DATA "HARLEQUIN","HEMOPHILIAC","HOLOGRAM" 3800 DATA "IDIOSYNCRASY","IGNOMINY","INCREMENT","ITTERATE" 3810 DATA "IONIC","IOTA","ILL","INK","IF" 3900 DATA "JAZZ","JUXTAPOSITION","JUNK","JAMB","JEWELERY" 4000 DATA "KANGAROO" 4100 DATA "LICENTIOUS","LUDICROUS","LYE","LEERY","LLAMA" 4110 DATA "LIBEL","LASER","LYNCH","LEWD" 4200 DATA "MYRRH","MY" 4300 DATA "NAPE","NEXT" 4400 DATA "OIL","OFF","ONOMATOPOEIA","OMNISCIENT","OMNIBUS" 4500 DATA "PRIMITIVE","PHLEGM","PITUITARY","PTERODACTYL" 4510 DATA "PHONEME","PHILOSOPHY","PSYCHOLOGY" 4600 DATA "QUIZ","QUASAR","QUARK","QUICK","QUEEN","QUESTION" 4610 DATA "QUEST","QUERY","QUIBBLE" 4700 DATA "RHETORIC","ROTATE","RESUME" 4800 DATA "SERENDIPITY","SYNCHRONOUS" 4900 DATA "TEXTURE","TSAR","TERRACOTTA","TRACT","TRAWL" 5000 DATA "UNIARY","UNIT","UNILATERAL","UNCLE","UNTIL" 5100 DATA "VACUUM","VELOCITY","VAST","VOLUME","VOWEL" 5200 DATA "WEPT","WAND","WRING","WRY" 5300 DATA "XYLOPHONE","XENOPHOBIC","XYLEM" 5400 DATA "YAWL","YANK" 5500 DATA "ZYGOTE","ZYMURGY" 6000 DATA "UNIARY","US","UP" 6010 REM ....L9 = LENGTH OF THE WORD "A$" 6020 END