'=========================================================================== ' Subject: HOT SHOOT Date: 01-03-00 (06:18) ' Author: Mahesh R. Menon Code: QB, QBasic, PDS ' Origin: mahesh_rmenon@hotmail.com Packet: GAMES.ABC '=========================================================================== CLS SCREEN 0 '----------- screen mode '------------------- for printing instructions COL = 1 ASH$ = STRING$(4, 176): ASH1$ = STRING$(4, 177): ASH2$ = STRING$(4, 178) ASH3$ = STRING$(15, 232) OUT$ = STRING$(75, 205): OUT1$ = STRING$(1, 201): OUT2$ = STRING$(1, 187) OUT3$ = STRING$(1, 186): OUT4$ = STRING$(1, 200): OT5$ = STRING$(1, 188) FOR CL = 1 TO 15 COLOR COL LOCATE 2, 4: PRINT OUT1$ LOCATE 2, 5: PRINT OUT$ LOCATE 2, 80: PRINT OUT2$ LOCATE 18, 4: PRINT OUT4$ LOCATE 18, 5: PRINT OUT$ FOR MNO = 3 TO 17 LOCATE MNO, 4: PRINT OUT3$ LOCATE MNO, 80: PRINT OUT3$ NEXT MNO LOCATE 18, 80: PRINT OT5$ LOCATE 4, 7: PRINT ASH$; ASH1$; ASH2$; ASH3$; " GAME CONTROLS "; ASH3$; ASH2$; ASH1$; ASH$ LOCATE 8, 25: PRINT " 1] LEFT ARROW TO GO LEFT " LOCATE 9, 25: PRINT " 2] RIGHT ARROW TO GO RIGHT " LOCATE 10, 25: PRINT " 3] UP ARROW TO GO RIGHT " LOCATE 11, 25: PRINT " 4] DOWN ARROW TO GO RIGHT " LOCATE 12, 25: PRINT " 5] SPACE BAR TO HIT " LOCATE 15, 28: PRINT "PRESS ANY KEY TO CONTINUE..." SLEEP (1) IF COL > 14 THEN COL = 0 COL = COL + 1 IF INKEY$ <> "" THEN GOTO 7 NEXT CL CLS 7 SCREEN 1 a = 1: B = 2: C = 50: D = 60 FOR x = 1 TO 15 FOR Z = 1 TO 90000 NEXT Z CIRCLE (156, 93), 65, a, , , .6 CIRCLE (156, 93), 75, B, , , .6 C = C + 10: D = D + 10 SWAP a, B NEXT x LOCATE 12, 14 PRINT "* HOt-ShOOt *" SLEEP (2) CLS '------------------------------------------------------------- for printing 5 SCREEN 7 COLOR 13 FOR ST = 2 TO 19 LOCATE 12, ST: PRINT "5" LOCATE 12, ST - 1: PRINT " " FOR CN = 1 TO 20000 '--------------- delay for the next position NEXT CN NEXT ST O = 3: O1 = 14 '--------- to change the color attributes for the circle FOR S = 10 TO 60 '--------- radius of the circle CIRCLE (146, 90), S, O '------ O=1 when radius = 10 FOR CN1 = 1 TO 10000 '-------- delay for the next circle NEXT CN1 CIRCLE (145, 90), S, 0 '-------- change the color of the circle to black SWAP O, O1 '--------- swap the color NEXT S CLS '------------------------------------------------------- for printing 4 COLOR 9 FOR st1 = 2 TO 12 LOCATE st1, 19: PRINT "4" LOCATE st1 - 1, 19: PRINT " " FOR CN = 1 TO 30000 NEXT CN NEXT st1 O2 = 12: O3 = 3 FOR S3 = 10 TO 60 CIRCLE (146, 90), S3, O2 FOR CN1 = 1 TO 10000 NEXT CN1 CIRCLE (147, 90), S3, 0 SWAP O2, O3 NEXT S3 CLS '------------------------------------------------ for printing 3 COLOR 3 FOR ST5 = 38 TO 19 STEP -1 LOCATE 12, ST5: PRINT "3" LOCATE 12, ST5 + 1: PRINT " " FOR CN = 1 TO 20000 NEXT CN NEXT ST5 O4 = 10: O5 = 11 FOR S = 10 TO 60 CIRCLE (146, 90), S, O4 FOR CN1 = 1 TO 10000 NEXT CN1 CIRCLE (145, 90), S, 0 SWAP O4, O5 NEXT S CLS '------------------------------- for printing 2 COLOR 14 FOR st4 = 24 TO 12 STEP -1 LOCATE st4, 19: PRINT "2" LOCATE st4 + 1, 19: PRINT " " FOR CN = 1 TO 25000 NEXT CN NEXT st4 Ot2 = 10: Ot3 = 13 FOR S3 = 10 TO 60 CIRCLE (146, 90), S3, Ot2 FOR CN1 = 1 TO 10000 NEXT CN1 CIRCLE (147, 90), S3, 0 SWAP Ot2, Ot3 NEXT S3 CLS '------------------------------------------ for printing GO !!! LOCATE 4, 7 COLOR 3, 0: PRINT "READY . . ." SLEEP (1) LOCATE 4, 7: PRINT " " LOCATE 17, 23 COLOR 9, 0: PRINT "GET SET . . " SLEEP (1) LOCATE 17, 23: PRINT " " LOCATE 12, 12 COLOR 14, 0: PRINT " GO . . ...! ! !" FOR lk = 1 TO 40000 NEXT lk '------------------------ start of the program . . . SCREEN 1 CLS LINE (3, 8)-(317, 185), 2, B ROW = 21: sr = 20: sc = 3: er = 21: ec = 38: SPEED = 48000: HIT = 0 SCORE1 = 0: MISS1 = 0 COLUMN = 21 LOCATE 25, 2 a$ = STRING$(1, 177) PRINT " ***** HOt-ShOOt *****"; " "; a$; " q - Quit"; a$ 1 a = 3: B = 2 FOR i = 3 TO 36 LINE (3, 141)-(317, 143), 2, B LOCATE a, B PRINT " O " FOR A1 = 1 TO SPEED NEXT A1 B = B + 1 KEYED$ = INKEY$ LOCATE ROW, COLUMN IF KEYED$ = CHR$(0) + "H" THEN ROW = ROW - 1 IF ROW <= sr THEN ROW = sr LOCATE ROW + 1, COLUMN: PRINT " " IF KEYED$ = CHR$(0) + "P" THEN ROW = ROW + 1 IF ROW >= er THEN ROW = er LOCATE ROW - 1, COLUMN: PRINT " " IF KEYED$ = CHR$(0) + "K" THEN COLUMN = COLUMN - 1 IF COLUMN <= sc THEN COLUMN = sc LOCATE ROW, COLUMN + 1: PRINT " " IF KEYED$ = CHR$(0) + "M" THEN COLUMN = COLUMN + 1 IF COLUMN >= ec THEN COLUMN = ec LOCATE ROW, COLUMN - 1: PRINT " " IF KEYED$ = "Q" OR KEYED$ = "q" THEN GOTO 2 LOCATE ROW, COLUMN PRINT "U" IF KEYED$ = " " OR KEYED$ = " " THEN MAC1 = ROW: mac2 = COLUMN h1 = 2 FOR I2 = 1 TO 17 LOCATE MAC1 - h1, mac2 PRINT "." FOR i1 = 1 TO 2222 NEXT i1 LOCATE MAC1 - h1, mac2 PRINT " " h1 = h1 + 1 NEXT I2 IF COLUMN <> i THEN MISS1 = MISS1 + 1 ELSE HIT = HIT + 1 SCORE1 = SCORE1 + 1 IF HIT > 2 THEN SPEED = SPEED - 4500 IF HIT = 11 THEN GOTO 12 END IF LOCATE 16, 30: PRINT "HIT "; HIT: SLEEP (1): LOCATE 16, 30: PRINT " " GOTO 1 END IF END IF NEXT i GOTO 1 '----------------------------------------------------- Level 2 . . . 12 CLS SCREEN 1 a = 1: B = 2: C = 50: D = 60 FOR x = 1 TO 15 FOR Z = 1 TO 90000 NEXT Z CIRCLE (156, 93), 50, a, , , .6 CIRCLE (156, 93), 60, B, , , .6 C = C + 10: D = D + 10 SWAP a, B NEXT x LOCATE 12, 16 PRINT "LEVEL 2..." SLEEP (2) CLS LINE (3, 8)-(317, 185), 2, B ROW = 21: sr = 20: sc = 3: er = 21: ec = 38: SPEED1 = 47000: HIT1 = 0 SCORE2 = 0: MISS2 = 0 COLUMN = 21 LOCATE 25, 2 a$ = STRING$(1, 177) PRINT " ***** HOt-ShOOt *****"; " "; a$; " q - Quit"; a$ 13 a = 3: B = 2: X1 = 5: Y1 = 75: X2 = 65: Y2 = 80 FOR MW = 3 TO 35 LINE (3, 141)-(317, 143), 2, B LOCATE a, B PRINT " . " FOR A1 = 1 TO SPEED1 NEXT A1 B = B + 1 KEYED$ = INKEY$ LOCATE ROW, COLUMN IF KEYED$ = CHR$(0) + "H" THEN ROW = ROW - 1 IF ROW <= sr THEN ROW = sr LOCATE ROW + 1, COLUMN: PRINT " " IF KEYED$ = CHR$(0) + "P" THEN ROW = ROW + 1 IF ROW >= er THEN ROW = er LOCATE ROW - 1, COLUMN: PRINT " " IF KEYED$ = CHR$(0) + "K" THEN COLUMN = COLUMN - 1 IF COLUMN <= sc THEN COLUMN = sc LOCATE ROW, COLUMN + 1: PRINT " " IF KEYED$ = CHR$(0) + "M" THEN COLUMN = COLUMN + 1 IF COLUMN >= ec THEN COLUMN = ec LOCATE ROW, COLUMN - 1: PRINT " " IF KEYED$ = "Q" OR KEYED$ = "q" THEN GOTO 2 LOCATE ROW, COLUMN PRINT "U" IF KEYED$ = " " OR KEYED$ = " " THEN MAC1 = ROW: mac2 = COLUMN h1 = 2 FOR I2 = 1 TO 17 LOCATE MAC1 - h1, mac2 PRINT "." FOR i1 = 1 TO 2222 NEXT i1 LOCATE MAC1 - h1, mac2 PRINT " " h1 = h1 + 1 NEXT I2 IF COLUMN <> MW THEN MISS2 = MISS2 + 1 ELSE HIT1 = HIT1 + 1 SCORE2 = SCORE2 + 1 IF HIT1 > 2 THEN SPEED1 = SPEED1 - 4500 IF HIT1 = 11 THEN GOTO 2 END IF LOCATE 16, 30: PRINT "HIT "; HIT1: SLEEP (1): LOCATE 16, 30: PRINT " " GOTO 13 END IF END IF NEXT MW GOTO 13 '---------------------------------------------- Score-board . . . 2 CLS SCREEN 2 SCREEN 0 TOTAL1 = 0: TOTAL2 = 0 DO LOCATE 2, 2: PRINT "------------------------------------------------------------------------" LOCATE 3, 30: PRINT " SCORE - BOARD " LOCATE 4, 2: PRINT "------------------------------------------------------------------------" LOCATE 6, 10: PRINT "FOR EACH HIT 100 POINTS" LOCATE 8, 10: PRINT "FOR EACH MISS MINUS 50 POINTS" LOCATE 12, 10: PRINT "HITS OF 1ST & 2nd LEVEL : "; SCORE1; SCORE2 LOCATE 14, 10: PRINT "MISSES OF 1st & 2nd LEVEL: "; MISS1; MISS2 TOTAL1 = SCORE1 * 100 - MISS1 * 50 TOTAL2 = SCORE2 * 100 - MISS2 * 50 LOCATE 16, 10: PRINT "TOTAL OF 1st LEVEL: "; TOTAL1 LOCATE 17, 10: PRINT "TOTAL OF 2nd LEVEL: "; TOTAL2 LOOP UNTIL INKEY$ <> "" CLS DO q1 = 14 FOR j = 1 TO 58 LOCATE 6, q1 PRINT "-" LOCATE 18, q1 PRINT "-" q1 = q1 + 1 NEXT j q = 7: p = 42 FOR i = 6 TO 16 LOCATE q, 15 PRINT "|" LOCATE q, 70 PRINT "|" q = q + 1 NEXT i LOCATE 8, 24 PRINT "*** THANK YOU FOR PLAYING HOt ShOOt ***" LOCATE 10, 24 PRINT " * Note * " LOCATE 12, 24 PRINT "Runs faster when compiled using Q-BASIC" LOCATE 17, 52 PRINT " - MAHESH R MENON " LOCATE 14, 26 PRINT " e-MAIL: mahesh_rmenon@hotmail.com " LOOP UNTIL INKEY$ <> "" END