' THIS IS HOW YOU CHANGE THE DIRECTORY DIR$ = "QBASIC\HANGMAN" SHELL "CD C:\" + DIR$ ON ERROR GOTO 6 SCREEN 13 FOR K = 16 TO 19 PALETTE K, 0 NEXT COLOR 16 LOCATE 7, 12 PRINT "THIS PROGRAM IS MADE" COLOR 17 LOCATE 9, 18 PRINT "BY GOD" COLOR 18 LOCATE 11, 13 PRINT "AND THROUGH ZACH" FOR K = 16 TO 19 FOR T = 1 TO 63 PALETTE K, T * 256 NEXT: NEXT FOR K = 16 TO 19 FOR T = 63 TO 1 STEP -1 PALETTE K, T * 256 NEXT: NEXT CLS PALETTE PALETTE 5, 0 PALETTE 6, 0 COLOR 5 PRINT "Z I C E" FOR A = 0 TO 55 FOR B = 0 TO 7 IF POINT(A, B) = 5 THEN LINE (A * 4.3 + 30, B * 5 + 29)-(A * 4.3 + 34.3, B * 5 + 34), 5, BF NEXT: NEXT DIM X(3), Y(3), M$(20) FOR K = 1 TO 20 FOR T = 0 TO 3 PSET (K + 30 + T * 70, 30), 10 NEXT FOR P = 1 TO 3000: NEXT FOR T = 0 TO 3 PSET (K + 30 + T * 70, 30), 2 X(T) = K + 30 + T * 70 Y(T) = 30 NEXT NEXT FOR K = 1 TO 90 IF K < 31 THEN X(0) = X(0) - .6: Y(0) = Y(0) + 1 ELSE IF K < 51 THEN X(0) = X(0) + 1 IF K < 10 THEN X(1) = X(1) - 1 ELSE IF K < 40 THEN Y(1) = Y(1) + 1 ELSE IF K < 51 THEN X(1) = X(1) - 1 ELSE IF K < 71 THEN X(1) = X(1) + 1 IF K < 21 THEN X(2) = X(2) - 1 ELSE IF K < 51 THEN Y(2) = Y(2) + 1 ELSE IF K < 71 THEN X(2) = X(2) + 1 IF K < 21 THEN X(3) = X(3) - 1 ELSE IF K < 36 THEN Y(3) = Y(3) + 1 ELSE IF K < 46 THEN X(3) = X(3) + 1 ELSE IF K < 56 THEN X(3) = X(3) - 1 ELSE IF K < 71 THEN Y(3) = Y(3) + 1 ELSE X(3) = X(3) + 1 FOR T = 0 TO 3 PSET (X(T), Y(T)), 10 NEXT FOR P = 1 TO 3000: NEXT FOR T = 0 TO 3 PSET (X(T), Y(T)), 2 NEXT NEXT LINE (0, 0)-(55, 7), 0, BF FOR K = 1 TO 59 PALETTE 5, K * 65536 IF K < 45 THEN PALETTE 2, (63 - K) * 256 ELSE PALETTE 2, (K - 5) * 65536 FOR P = 1 TO 1000: NEXT: NEXT COLOR 6 LOCATE 1, 1 PRINT "Z I C E" FOR A = 0 TO 55 FOR B = 0 TO 7 IF POINT(A, B) = 6 THEN LINE (A * 4.3 + 30, B * 5 + 29)-(A * 4.3 + 34.3, B * 5 + 34), 5, BF ELSE LINE (A * 4.3 + 30, B * 5 + 29)-(A * 4.3 + 34.3, B * 5 + 34), 0, BF NEXT: NEXT FOR K = 63 TO 1 STEP -1 PALETTE 5, K * 65536 NEXT CLS FOR K = 1 TO 15 PALETTE K, (K * 3) + 15 NEXT COLOR 16 PRINT "PRESENTS" C = 1 FOR A = 0 TO 63 FOR B = 0 TO 7 C = C - .03 IF A < 32 THEN C = C + .06 IF POINT(A, B) = 16 THEN PSET (A + 130, B + 95), C NEXT: NEXT GOSUB 1 LINE (0, 0)-(63, 7), 0, BF CLS FOR K = 1 TO 5 PALETTE K, 0 NEXT FOR K = 17 TO 27 PALETTE K, (K * 2) * 256 + (K * 2) NEXT LOCATE 20, 1 COLOR 1 PRINT "HANGMAN" FOR A = 0 TO 55 FOR B = 152 TO 160 IF POINT(A, B) = 1 THEN LINE (A * 5 + 30, (B - 152) * 5 + 30)-(A * 5 + 35, (B - 152) * 5 + 35), INT(RND * 10) + 17, BF NEXT NEXT GOSUB 1 2 SCREEN 0: WIDTH 80, 25 RANDOMIZE TIMER LOCATE 5, 35: COLOR 1 PRINT "MAIN MENU" T = 1: S = 0 DO K$ = INKEY$: K$ = RIGHT$(K$, 1) IF K$ = "H" AND T > 1 THEN T = T - 1 IF K$ = "P" AND T < 4 THEN T = T + 1 IF K$ = CHR$(13) THEN S = T COLOR 7 IF T = 1 THEN COLOR 15 LOCATE 8, 33 PRINT "1. START NEW GAME" COLOR 7 IF T = 2 THEN COLOR 15 LOCATE 9, 33 PRINT "2. INSTRUCTIONS" COLOR 7 IF T = 3 THEN COLOR 15 LOCATE 10, 33 PRINT "3. COMING SOON" COLOR 7 IF T = 4 THEN COLOR 15 LOCATE 11, 33 PRINT "4. EXIT GAME" LOOP UNTIL S > 0 IF S = 4 THEN END IF S = 1 THEN COLOR INT(RND * 15) + 1 DO CLS INPUT "PLAYERS(1-5)"; A$ P = VAL(A$) LOOP UNTIL P > 0 AND P < 6 DO CLS INPUT "DIFFICULTY(1-3)"; A$ D = VAL(A$) LOOP UNTIL D > 0 AND D < 4 LEV = D - 1 DIM L(5), N$(29), S(5), YAS(26) START: RESTORE CLS FOR K = 1 TO P IF D = 1 THEN L(K) = 14 IF D = 2 THEN L(K) = 10 IF D = 3 THEN L(K) = 7 IF D = 4 THEN L(K) = 5 L(K) = INT(L(K) / P) NEXT K W = INT(RND * 100) + (LEV * 100) FOR K = 1 TO W READ W$ NEXT K QW$ = STRING$(LEN(W$), "_") AL$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" DO CLS DO CP = CP + 1 IF CP = P + 1 THEN CP = 1 DO NX = 0 LOCATE 3, 10 PRINT "PLAYER"; CP LOCATE 10, 10 PRINT QW$ LOCATE 15, 15 PRINT "GUESS LETTER(A-Z)" LOCATE 18, 5 PRINT AL$ IN: K$ = INPUT$(1) K$ = UCASE$(K$) IF K$ = CHR$(27) THEN GOTO 2 IF ASC(K$) < 65 OR ASC(K$) > 90 THEN GOTO IN IF YAS(ASC(K$) - 64) = 1 THEN GOTO IN GL = GL + 1: N$(GL) = K$: YAS(ASC(K$) - 64) = 1: AL$ = MID$(AL$, 1, ASC(K$) - 65) + "/" + MID$(AL$, ASC(K$) - 63, 26) FOR T = 1 TO LEN(W$) IF K$ = MID$(W$, T, 1) THEN QW$ = LEFT$(QW$, T - 1) + K$ + MID$(QW$, T + 1, LEN(QW$)): S(CP) = S(CP) + 2: R = 1: NX = 1 NEXT T IF R = 0 THEN L(CP) = L(CP) - 1: IF L(CP) < 1 THEN GOSUB LOSE LOCATE 1, 40 PRINT "ROUND:"; ROU LOCATE 2, 40 PRINT "LEVEL:"; LEV + 1 LOCATE 20, 1 PRINT L(CP); R LOCATE 1, 1 PRINT "LIVES:"; FOR K = 1 TO P PRINT L(K); NEXT LOCATE 2, 1 PRINT "SCORES:"; FOR K = 1 TO P PRINT S(K); NEXT IF R = 1 THEN R = 0 FOR T = 1 TO LEN(QW$) IF MID$(QW$, T, 1) = "_" THEN NC = 1 NEXT IF NC = 0 THEN S(CP) = S(CP) + 4: GOTO WIN NC = 0 LOOP UNTIL NX = 0 LOOP LOOP END IF IF S = 2 THEN SHELL "HELP!.TXT" GOTO 2 END IF IF S = 3 THEN SCREEN 13 FOR K = 1 TO 4 PALETTE K, 0 NEXT LOCATE 5, 15 COLOR 1 PRINT "THIS VERSION IS 1.0, BUT" LOCATE 7, 10 COLOR 2 PRINT "THERE WILL BE IN THE NEXT VERSION, 1.1" LOCATE 12, 15 COLOR 3 PRINT "AND MANY MORE MENUS" LOCATE 20, 15 COLOR 4 PRINT "AND IN VERSION 1.2 THERE WILL BE..." LOCATE 1, 1 COLOR 16 PRINT "SPACE TEXT" C = 22 FOR A = 0 TO 79 FOR B = 0 TO 7 C = C - 2 IF B < 4 THEN C = C + 4 IF POINT(A, B) = 16 THEN PSET (A + 120, B + 71), C NEXT: NEXT FOR K = 1 TO 4 FOR T = 1 TO 63 PALETTE K, T NEXT: NEXT GOSUB 1 FOR K = 1 TO 4 FOR T = 63 TO 1 STEP -1 PALETTE K, T NEXT: NEXT CLS COLOR 1 LOCATE 6, 16 PRINT "...A MOUSE" COLOR 2 LOCATE 15, 14 PRINT "AND SPACE BOXES" source$ = "55,89,E5,8B,5E,0C,8B,07,50,8B,5E,0A,8B,07,50,8B,5E,08,8B,0F,8B,5E,06,8B,17,5B,58,1E,07,CD,33,53,8B,5E,0C,89,07,58,8B,5E,0A,89,07,8B,5E,08,89,0F,8B,5E,06,89,17,5D,CA,08,00" FOR I% = 1 TO 57 A$ = MID$(source$, (I% * 3) - 2, 2) MOUSE$ = MOUSE$ + CHR$(VAL("&H" + A$)) NEXT I% DEF SEG = VARSEG(MOUSE$) CALL Absolute(ax%, BX%, CX%, DX%, SADD(MOUSE$)) IF NOT ax% THEN PRINT "Mouse not found": GOTO 4 CALL Absolute(1, BX%, CX%, DX%, SADD(MOUSE$)) CALL Absolute(7, BX%, 0, 640, SADD(MOUSE$)) CALL Absolute(8, BX%, 0, 200, SADD(MOUSE$)) 4 FOR K = 16 TO 31 LINE (30 + K, 55 + K)-(280 - K, 180 - K), K, B NEXT FOR K = 1 TO 2 FOR T = 1 TO 63 PALETTE K, T NEXT: NEXT GOSUB 1 CALL Absolute(2, BX%, CX%, DX%, SADD(MOUSE$)) FOR K = 1 TO 2 FOR T = 63 TO 1 STEP -1 PALETTE K, T NEXT: NEXT CLS PALETTE GOTO 2 END IF LOSE: LO = LO + 1 IF LO = P THEN CS = CS + 10: LOSE = 1: GOTO WIN RETURN WIN: CLS IF LOSE = 0 THEN PRINT "CORRECT THE WORD WAS "; W$: ROU = ROU + 1: IF ROU = 6 THEN ROU = 0: LEV = LEV + 1: IF LEV = 4 THEN PRINT "YOU WON THE GAME, CONGRADULATIONS!": END IF LOSE = 1 THEN PRINT "ACTUALLY THE WORD WAS "; W$: LOSE = 0: ROU = 0 FOR K = 1 TO P PRINT "PLAYER"; K; "SCORE IS"; S(K) NEXT PRINT "COMPUTER'S SCORE IS"; CS IN2: INPUT "ANOTHER ROUND"; A$ A$ = UCASE$(A$) IF A$ = "Y" THEN FOR K = 1 TO 25: YAS(K) = 0: NEXT: GL = 0: LO = 0: GOTO START IF A$ = "N" THEN CLS : GOTO 2 GOTO IN2 DATA SIT,SAT,TOSS,BOSS,COST,LOST,RAT,ATE,BAT,LAST,MAST,LIST,MIST,HISS,HIS,HIT,HUT,SOOT,ROOT,TOOT,HOOT,LAB,LET,LIT,LIGHT,FIGHT,MIGHT,HEIGHT,LATE,CAT,CRATE,BAIT,LOSS,MUG,BUG,MUTT,TIE,DIE,LUST,BUST,DUST,RUST,MUST,MET,MITT,FIST,KISS,HISS,BAR,TAR,FAR,FART,DART,DARE,DIP,HARE,HAIR,TEAR,SEE,BEE,GET,BEAT,FEAT,LAP,RAP,SAP,TAP,TIP,TOP,TORE,HOP,HIP,DIP,LIP,NIP,TRIP,BASE,BASS,HAS,ARE,ART,ERE,READ,REED,SEED,LEG,PEG,STAKE,START,CLIP,STILL,MALT,TILT,SLIDE,STID,STICK,LICK,TICK,SICK,PICK,TOUGH,TOUCH,TOGGLE,TIMID,TRACED,TRACTION,CRISP,GOGGLES,GRAPES,YACHT,PRINCE,NUN,GIG,GAG,VANTRILIQUIST,QUADRUPLE,QUACK,CLOCK,PREY,HORRID,LAVA,LEVITATION,CRACK,TARANTULA,AWAKENESS,TORPEDO,LASER,COMPUTATION,GARBAGE,LEG,KICK,METALIC,UNDERWEAR,FACT,LISTEN,JUGGLE,FRACTURE,FRACTION,GEAR,BRAGGING,PIGGISH,SOCKET,TONGUE,DISC,CARBONATION,PLASTIC,WOODEN,GUNK,JUNK,JUNKYARD,REFRIGERATOR,MICROCHIP,JELLO,PEANUT,WALNUT,SIREN,TOOTHPASTE,GIGGLE,FORK,BRANCH,NATURE,MOUSTACHE,BEARD,PIMPLE,SUITCASE,ROBOT,HANDLE,SHARP,TINT,HARP,GLORY,HALO,BRACELET,WRESTLE,WRESTLER,PRIDE,NOVICE,KANGAROO,STRAW,FRUIT,JUICE,BOOGER,LAWN,SHADOW,ERROR,BRIDGE,JETTED,MAINTAINED,PURITY,TERRAIN,ARROW,CRATED,ROTATION,SOUP,NANNY,MAMMOTH,PLEASANT,CURD,CHEESE,WHEY,QUILT,AZTEC,UMPTEENTH,NTH,NINETY,UMPIRE,UNCLE,PLUMBER,CLUMP,NOOK,CRANNY,CROOKED,ROOKIE,EXTRA,HALELUAH,HUNDRED,AXLE,XI,TSITSI,WHICH,AHOY,NAGGER,WEIGHTY,MUMBLE,PUZZLE,PIZZA,ZIGZAG,NUMCHUCK,OXIDIZE,CIS,CIRCUIT,CIRCUS,CIRCULATION,NEUTRALIZE,FLOURIDE,KINETIC,CYANIDE,CATALYTIC,ARYL,NAPHTHA,CHIRAL,GLYCEROL,FIXED,IGLOO,HYPNOTIC,MOLECULAR,AEROSOL,UNIVALENT,HYGROSCOPIC,OSMOTIC,CATIONIC,LACILE,LIGAND,HEMATITE,CHELATE,GROTESQUE,LOZENGE,CHANDELIER,AQUILINE,OSCILLATION,AURICLE,VISCERA,SOIREE,CONCIERGE,CHICANERT,VICISSITUDE,UNCTION,KOAN,DAVEN,AHIMSA,KITTEL,ELOGE,SKIRRET,AGALLOCH,ECHOPPE,QUIRT,COYOTE,PUEBLO,VIGA,VOLADOR,GUIRO,SILLAR,PIPPIN,EUTAXY,FIE,VILIPEND,SKOOKUM,CONDIGN,PSHAW,RHATHYMIA,KAMIKAZE,TIKI,KORRIGAN,PHAETON,ODYSSEY,LILLIPUTIAN,GLITZ,ROCOCO,BANANA,TILAK,SGRAFFITO,IKAT,CHURRIGUERESQUE,BATHYCLINOGRAPH,AGGER,ZYZZYVA,AGUAJI,GHURRY,GNOMON,AGGIORNAMENTO,MAKAHIKI,FUSILLI,GRAFFITI,ZUCCHINI,DUVET,GIOT,KEPI,MYXOMATOSIS,YTTRIUM,KEVEL,RYA,COUP,GOOGOL,BLOC,CAHIER,SWARAJ,SYSSEL,XYSTI,SHOGI,GLOTTOLOGY,FEIS,VAUDEVILLE,WHODUNIT,LOLORRHEA,LYCEUM,LUGE,MILIEU,SOOGEE,WOW,HUGE,DENGUE,AVOCET,MOIRE,LEVIRATE,LIGNIPERDOUS,PELMET,NUCHAL,NISSE,DVANDVA,ULPAN,QUINCUNX,QUILL,TROIKA,TRIFURCATR,TARIFF,WELTPOLITIK,POLIS,BLABBER,FRIEZE,CHICHI,LIMU,ACOEL,MAKAI,PAHUA,CONCHOLOGIZE,JUNONIA,GLACON,AGGER,MAERL,GUYOT,MANHADEN,MICROTEKTITE,FAJA,APAREJO,SAVVY,HAFIZ,GIAOUR,AITION,IMAM,ZAZEN,YAK,SKIRRET,COONCAN,IDYLLIC,CACOLOGY,JUNTA,JICARA,JICAMA,PREUX,PAHUA,AMA,KUCHEN,CANNOLI,GNOCCHI,TRYST,ZULU,ARHAT,KNELL,BOBBERY,ATTAINT 1 DO T = T + 1 IF T = 300 THEN T = 1 IF T < 150 THEN COLOR 40 ELSE COLOR 0 LOCATE 22, 15: PRINT "PRESS ANY KEY": LOOP UNTIL INKEY$ <> "": RETURN 6 SCREEN 13 CLS LOCATE 11, 8 COLOR 4 PALETTE 4, 0 PRINT "UNEXPEXTED ERROR, SEND ZACHARIE ZENS(ME) A LETTER AT 115 GARFIELD STREET ALMENA, WI 54805. TELL ME THAT ERROR"; ERR; "OCCURRED." DO IF M = 0 THEN C = C + 1 IF M = 1 THEN C = C - 1 IF C = 0 THEN M = 0 IF C = 63 THEN M = 1 PALETTE 4, C LOOP UNTIL INKEY$ <> "" SCREEN 0 END