The strings from which the words are chosen by the computer are stored in A$ and you may wish to modify the program to include your own words and topics or to combine all the existing topics so that the selected word can be taken randomly from any one of them. Note that some of the topics are divided up into two distinct groups of words of different lengths and random number routines are used in the program to determine which group the word is to be chosen from.
1 REM *** BBC VERSION *** 2 REM *** HANGMAN *** 4 GOSUB 7000 5 MODE1:CLS:VDU23,1,0;0;0;0;:GOSUB10000 6 REM @ PAUL STANLEY 7 GOSUB 7000 10 GOSUB1000 95 FORI=1TO10000:NEXT:VDU20:CLS:RETURN 99 END 100 IF RND(1)>.5 THEN GOTO125 110 A$="PIGEONDONKEYBUDGIEMAGGOTJAGUARSPID ERBEETLEWEEVILEARWIGSHRIMPSALMONPLAICEMINNOWB ADGERCATTLEKITTENLOCUSTMAGPIERABBITTURKEYTURT LECANARYGERBILMONKEYCURLEW" 120 I=RND(25)*6-5:B$=MID$(A$,I,6):RETURN 125 A$="SNAILROACHHIPPOLLAMACHIMPCAMELHORS ETIGERHOUNDSNAKEROBINHERONRAVENSTORKTROUTWHAL EHYENAPANDASKUNKTAPIRZEBRAMOUSESHREWEAGLESWIF TPERCHPRAWNOTTERGOOSEKOALASHEEP" 130 I=RND(31)*5-4:B$=MID$(A$,I,5):RETURN 150 IF RND(1)>.5 THEN GOTO175 160 A$="ALBANIAAUSTRIABELGIUMDENMARKFINLAN DGERMANYHUNGARYICELANDIRELANDRUMANIABAHRAINLE BANONALGERIALIBERIANIGERIASENEGALTUNISIABERMU DAJAMAICABOLIVIAURUGUAY" 170 I=RND(21)*7-6:B$=MID$(A$,I,7):RETURN 175 A$="TURKEYUGANDASWEDENPOLANDNORWAYMEXI COKUWAITISRAELGREECEZAMBIAFRANCECYPRUSCANADAB RAZILTAIWANPANAMAMALAWIJORDANAZORESANGOLA" 185 I=RND(20)*6-5:B$=MID$(A$,I,6):RETURN 210 I=RND(16)*7-6:B$=MID$(A$,I,7):RETURN 250 IF RND(1)>.5 THEN GOTO275 260 A$="BARIUMCARBONCERIUMCOBALTCOPPERCURI UMERBIUMHELIUMINDIUMIODINENICKELOSMIUMOXYGENR ADIUMSILVERSODIUM" 265 I=RND(16)*6-5:B$=MID$(A$,I,6):RETURN 275 A$="ARSENICBISMUTHBROMINECADMIUMCAESIU MCALCIUMFERMIUMGALLIUMHAFNIUMHOLMIUMIRIDIUMKR YPTONLITHIUMMERCURYRHENIUMRHODIUMSILICONSULPH URTERBIUMTHORIUMTHULIUMYTTRIUM" 280 I=RND(22)*7-6:B$=MID$(A$,I,7):RETURN 300 A$="JAMESDAVIDEDGARHENRYCAROLHELENBRIA NSALLYSARAHSUSANPETERSIMONMANDYKEVINSCOTTNIGE LMILESROBINVENUSROMEOCECILDYLANPERCYLEIGHEMIL YPABLOFRANKCLIVEDIANANIKCYTRACYBARRYGEOFFTERR Y" 320 I=RND(34)*5-4:B$=MID$(A$,I,5):RETURN 350 IF RND(1)>.5 THEN GOTO375 360 A$="CARRYCATCHMARRYLAUGHTWISTBRINGFETC HWRITECLIMBWORRYGLIDEAWASHSHOOTDODGEPUNCHSMAC KSCALETHROWLOATHDRIVEPRESSTASTESPEAKHURRYSCOR ETRAILFORCEPROVETRACEPAINT" 370 I=RND(30)*5-4:B$=MID$(A$,I,5):RETURN 375 A$="COLOURTHRILLUNLOCKAFFECTABDUCTFOLL OWATTACKDEFENDDIFFERSELECTOUTPUTDEFINECHANCEM ODIFYREMAINACCEPTSPRINGASSUREVANISHFINISHTRAV EL" 390 I=RND(21)*6-5:B$=MID$(A$,I,6):RETURN 1000 COLOUR2:PRINTTAB(13,3)"H A N G M A N" 1005 COLOUR1:PRINTTAB(6,7)"Which subject do you want?" 1010 COLOUR3:PRINTTAB(6,10)"1.....ANIMALS",T AB(6,12)"2.....COUNTRIES OF THE WORLD",TAB(6, 14)"3.....COMPOSERS & ARTISTS" 1020 PRINTTAB(6,16)"4.....CHEMICAL ELEMENTS" ,TAB(6,18)"5.....CHRISTIAN NAMES",TAB(6,20)"6 .....GENERAL VERBS" 1050 COLOUR1:PRINTTAB(7,25)"Press the approp riate key" 1060 I=GET:IFI<49 OR I>54 THENGOTO1060 1070 GOSUB (50+50*VAL(CHR$(I))) 1080 CLS 1090 COLOUR1:PRINTTAB(19,5)"H A N G M A N" 1100 S=0:C=0:L=LEN(B$):Y=13:X=15 1105 COLOUR2:PRINTTAB(19,6)"Your guesses:" 1110 COLOUR1:FORF=1TOL:PRINTTAB(17+F*2,8)"?" :NEXT 1120 COLOUR2:PRINTTAB(19,12)"Guess a letter" 1125 JJ=0 1130 I=GET:IF I<65 OR I>90 THENGOTO1130 1135 JJ=JJ+1:IF MID$(T$,JJ,1)=CHR$(I) THEN JJ=0:GOTO1130 1137 IF JJ<20 GOTO1135 1138 T$=T$+CHR$(I) 2000 S1=S:FORF=1TOL 2010 IF CHR$(I)=MID$(B$,F,1) THEN GOTO2100 2020 NEXT:IF S=S1 THEN SOUND2,-12,53,2:SOUND 3,-12,80,3:GOSUB(5000+10*C):C=C+1 2030 IF S=S1 THEN COLOUR1:PRINTTAB(X+4,Y+5)C HR$(I):X=X+2:IFX=33 THEN X=15:Y=Y+2 2040 GOTO1120 2100 COLOUR2:PRINTTAB(17+F*2,8)CHR$(I) 2110 SOUND2,-12,190,2:S=S+1:IF S=L THEN GOTO 3000 2115 NEXTF 2120 GOTO1120 3000 COLOUR2:PRINTTAB(4,25)"WELL DONE! YOU C ORRECTLY GOT":COLOUR1:PRINTTAB(4,26)B$:COLOUR 2:PRINTTAB(13,26)"IN ";C+S;" GUESSES" 3010 FORF=1TO15000:NEXT:T$="":GOTO1000 5000 COLOUR1:FORF=1TO14:VDU31,F+4,23,144:NE XT:RETURN 5010 COLOUR1:FORF=5TO17:PRINTTAB(6,F+5)CHR$ 144:NEXT:RETURN 5020 COLOUR1:FORF=1TO8:VDU31,5+F,9,144:NEXT :RETURN 5030 GCOL0,1:FORF=0TO5:MOVE224,608+F:DRAW32 0-F,700-F:NEXT:RETURN 5040 COLOUR1:VDU31,13,10,144:RETURN 5050 GCOL0,2:PROCCR(428,636,36):MOVE408,640 :DRAW412,640:DRAW412,644:DRAW408,644:MOVE432, 640:DRAW436,640:DRAW436,644:DRAW432,644 5052 MOVE420,632:DRAW432,620:DRAW424,620:DR AW420,624 5056 MOVE404,620:DRAW424,612:DRAW444,620:RE TURN 5060 GCOL0,2:FORF=73TO76:MOVEF*4+128,576:DR AWF*4+128,596:NEXT 5062 COLOUR2:VDU31,12,14,143,143,143,31,11, 15,143,143,143,143,143,31,12,16,143,143,143,3 1,13,17,143:RETURN 5070 GCOL0,2:MOVE460,576:DRAW500,616:DRAW504 ,616:DRAW464,576:PROCCR(516,624,4):PROCCR(516 ,624,8):PROCCR(516,624,12):RETURN 5080 GCOL0,2:MOVE384,576:DRAW344,616:DRAW34 0,616:DRAW380,576:PROCCR(332,624,4):PROCCR(33 2,624,8):PROCCR(332,624,12):RETURN 5090 GCOL0,2:FORF=1TO4:MOVE396+F*4,476:DRAW3 16+F*4,356:NEXT 5092 COLOUR2:VDU31,9,21,143,143:RETURN 5100 GCOL0,2:FORF=1TO4:MOVE444+F*4,476:DRAW5 24+F*4,356:NEXT 5102 COLOUR2:VDU31,16,21,143,143 5110 COLOUR1:PRINTTAB(4,25)"BAD LUCK! YOU'V E BEEN HANGED.",TAB(4,27)"THE ANSWER WAS ";B$ 5120 GOTO3010 7000 FORL=5000TO5090STEP10:GOSUB L:NEXT 7050 GCOL0,2:FORF=1TO4:MOVE444+F*4,476:DRAW5 24+F*4,356:NEXT 7060 COLOUR2:VDU31,16,21,143,143 7080 FORF=110TO180STEP5:SOUND2,-12,F,5:SOUND 3,-12,290-F,5:NEXT 8000 COLOUR3:VDU19,3,4,0,0,0:VDU31,1,25,144, 32,32,144,32,144,144,144,144,32,144,145,32,32 ,144,32,144,144,144,144,32,144,145,32,146,144 ,32,144,144,144,144,32,144,145,32,32,144 8002 VDU31,1,26,144,32,32,144,32,144,32,32, 144,32,144,146,32,32,144,32,144,32,32,32,32,1 44,146,32,145,144,32,144,32,32,144,32,144,146 ,32,32,144 8004 VDU31,1,27,144,144,144,144,32,144,144,1 44,144,32,144,32,144,32,144,32,144,32,144,144 ,32,144,32,144,32,144,32,144,144,144,144,32,1 44,32,144,32,144 8006 VDU31,1,28,144,32,32,144,32,144,32,32,1 44,32,144,32,32,145,144,32,144,32,32,144,32,1 44,32,32,32,144,32,144,32,32,144,32,144,32,32 ,145,144 8008 VDU31,1,29,144,32,32,144,32,144,32,32,1 44,32,144,32,32,146,144,32,144,144,144,144,32 ,144,32,32,32,144,32,144,32,32,144,32,144,32, 32,146,144 8010 FORJ=2TO9:VDU19,3,J,0,0,0:FORI=1TO1000: NEXT:NEXT 9000 COLOUR2:PRINTTAB(20,10)"@ Paul Stanley" 10000 VDU23,143,255,255,255,255,255,255,255,2 55,23,144,255,129,155,181,181,177,191,255,23, 145,240,240,240,240,240,240,240,240,23,146,15 ,15,15,15,15,15,15,15:T$="":RETURN 10010 END 11000 DEF PROCCR(AC,BC,RC):MOVEAC-RC,BC:FORXC =(AC-RC)TO(AC+RC)STEP4:YC=BC+SQR(RC^2-(XC-AC) ^2):DRAWXC,YC:NEXT:FORXC=(AC+RC)TO(AC-RC)STEP -4:YC=BC-SQR(RC^2-(XC-AC)^2):DRAWXC,YC:NEXT:E NDPROC