'TAG.BAS 'By Logan Hoehn 'May 29, 1998 DECLARE SUB CENTER (row%, text$) SCREEN 12 RANDOMIZE TIMER CENTER 3, "TAG Version 1.1" CENTER 4, "By Logan Hoehn" CENTER 8, "KEYBOARD CONTROLS:" CENTER 9, "KBD1 KBD2" CENTER 10, STRING$(34, "-") CENTER 11, "Up W" CENTER 12, "Left Right A D " CENTER 13, "Down S " CENTER 14, "P = Pause " CENTER 15, "ESC = Quit" LOCATE 17, 15 INPUT "HOW MANY PLAYERS? 2 or 3 (Joystick required)"; p% IF p% <> 3 THEN p% = 2 CENTER 19, "WHAT SPEED DO YOU WANT TO PLAY AT?" LOCATE 20, 30 INPUT "Fast 1-999 Slow"; speed% IF speed% < 1 OR speed% > 999 THEN speed% = 10 CLS IF p% = 3 THEN PRINT "JOYSTICK CALIBRATION FOR THIRD PLAYER" PRINT "Taken from JOYCAL.BAS (My own program)" PRINT PRINT "Hold joystick to center position" PRINT "(don't touch it) and press a button." DO PRINT STICK(0) PRINT STICK(1) LOCATE CSRLIN - 2, 1 LOOP UNTIL STRIG(1) OR STRIG(3) OR STRIG(5) OR STRIG(7) OR INKEY$ <> "" DO PRINT STICK(0) PRINT STICK(1) LOCATE CSRLIN - 2, 1 LOOP WHILE STRIG(1) OR STRIG(3) OR STRIG(5) OR STRIG(7) OR INKEY$ <> "" x2% = STICK(0) y2% = STICK(1) LOCATE CSRLIN + 3, 1 PRINT "Hold joystick to top left" PRINT "and press a button." DO PRINT STICK(0) PRINT STICK(1) LOCATE CSRLIN - 2, 1 LOOP UNTIL STRIG(1) OR STRIG(3) OR STRIG(5) OR STRIG(7) OR INKEY$ <> "" DO PRINT STICK(0) PRINT STICK(1) LOCATE CSRLIN - 2, 1 LOOP WHILE STRIG(1) OR STRIG(3) OR STRIG(5) OR STRIG(7) OR INKEY$ <> "" x1% = STICK(0) y1% = STICK(1) LOCATE CSRLIN + 3, 1 PRINT "Hold joystick to bottom right" PRINT "and press a button." DO PRINT STICK(0) PRINT STICK(1) LOCATE CSRLIN - 2, 1 LOOP UNTIL STRIG(1) OR STRIG(3) OR STRIG(5) OR STRIG(7) OR INKEY$ <> "" DO PRINT STICK(0) PRINT STICK(1) LOCATE CSRLIN - 2, 1 LOOP WHILE STRIG(1) OR STRIG(3) OR STRIG(5) OR STRIG(7) OR INKEY$ <> "" x3% = STICK(0) y3% = STICK(1) x1% = (x2% - x1%) / 2 + x1% y1% = (y2% - y1%) / 2 + y1% x3% = (x3% - x2%) / 2 + x2% y3% = (y3% - y2%) / 2 + y2% CLS END IF a1% = 210 a2% = 175 b1% = 420 b2% = 175 c1% = 315 c2% = 250 it% = INT(RND * p%) + 1 DO FOR i% = 1 TO speed% kbd$ = UCASE$(INKEY$) SELECT CASE kbd$ CASE CHR$(0) + "H" a3% = 1 CASE CHR$(0) + "K" a3% = 2 CASE CHR$(0) + "P" a3% = 3 CASE CHR$(0) + "M" a3% = 4 CASE "W" b3% = 1 CASE "A" b3% = 2 CASE "S" b3% = 3 CASE "D" b3% = 4 CASE CHR$(27) CENTER 11, "THANK YOU FOR PLAYING TAG 1.1" SLEEP 2 END CASE "P" CENTER 11, "PAUSE" DO: LOOP UNTIL UCASE$(INKEY$) = "P" CENTER 11, " " END SELECT IF p% = 3 THEN IF STICK(1) < y1% THEN c3% = 1 IF STICK(0) < x1% THEN c3% = 2 IF STICK(1) > y3% THEN c3% = 3 IF STICK(0) > x3% THEN c3% = 4 END IF NEXT i% LINE (a1% - 5, a2% - 5)-(a1% + 5, a2% + 5), 4, BF LINE (a1% - 6, a2% - 6)-(a1% + 6, a2% + 6), 0, B LINE (b1% - 5, b2% - 5)-(b1% + 5, b2% + 5), 2, BF LINE (b1% - 6, b2% - 6)-(b1% + 6, b2% + 6), 0, B IF p% = 3 THEN LINE (c1% - 5, c2% - 5)-(c1% + 5, c2% + 5), 15, BF IF p% = 3 THEN LINE (c1% - 6, c2% - 6)-(c1% + 6, c2% + 6), 0, B SELECT CASE a3% CASE 1 a2% = a2% - 1 CASE 2 a1% = a1% - 1 CASE 3 a2% = a2% + 1 CASE 4 a1% = a1% + 1 END SELECT SELECT CASE b3% CASE 1 b2% = b2% - 1 CASE 2 b1% = b1% - 1 CASE 3 b2% = b2% + 1 CASE 4 b1% = b1% + 1 END SELECT SELECT CASE c3% CASE 1 c2% = c2% - 1 CASE 2 c1% = c1% - 1 CASE 3 c2% = c2% + 1 CASE 4 c1% = c1% + 1 END SELECT IF a1% < 8 THEN a1% = 8: a3% = 0 IF a2% < 8 THEN a2% = 8: a3% = 0 IF a1% > 631 THEN a1% = 631: a3% = 0 IF a2% > 471 THEN a2% = 471: a3% = 0 IF b1% < 8 THEN b1% = 8: b3% = 0 IF b2% < 8 THEN b2% = 8: b3% = 0 IF b1% > 631 THEN b1% = 631: b3% = 0 IF b2% > 471 THEN b2% = 471: b3% = 0 IF c1% < 8 THEN c1% = 8: c3% = 0 IF c2% < 8 THEN c2% = 8: c3% = 0 IF c1% > 631 THEN c1% = 631: c3% = 0 IF c2% > 471 THEN c2% = 471: c3% = 0 dab1% = 0 dab2% = 0 IF a1% > b1% THEN dab1% = a1% - b1% IF a1% < b1% THEN dab1% = b1% - a1% IF a2% > b2% THEN dab2% = a2% - b2% IF a2% < b2% THEN dab2% = b2% - a2% IF dab1% < 12 AND dab2% < 12 THEN cab% = 1: tagab% = 1 ELSE cab% = 0 IF tagab% = 1 AND cab% = 0 AND it% = 1 THEN it% = 2: tagab% = 0 IF tagab% = 1 AND cab% = 0 AND it% = 2 THEN it% = 1: tagab% = 0 IF p% = 3 THEN dbc1% = 0 dbc2% = 0 dac1% = 0 dac2% = 0 IF b1% > c1% THEN dbc1% = b1% - c1% IF b1% < c1% THEN dbc1% = c1% - b1% IF b2% > c2% THEN dbc2% = b2% - c2% IF b2% < c2% THEN dbc2% = c2% - b2% IF a1% > c1% THEN dac1% = a1% - c1% IF a1% < c1% THEN dac1% = c1% - a1% IF a2% > c2% THEN dac2% = a2% - c2% IF a2% < c2% THEN dac2% = c2% - a2% IF dbc1% < 12 AND dbc2% < 12 THEN cbc% = 1: tagbc% = 1 ELSE cbc% = 0 IF dac1% < 12 AND dac2% < 12 THEN cac% = 1: tagac% = 1 ELSE cac% = 0 IF tagab% = 1 AND cab% = 0 AND it% = 3 THEN it% = 3: tagab% = 0 IF tagbc% = 1 AND cbc% = 0 AND it% = 2 THEN it% = 3: tagbc% = 0 IF tagbc% = 1 AND cbc% = 0 AND it% = 3 THEN it% = 2: tagbc% = 0 IF tagbc% = 1 AND cbc% = 0 AND it% = 1 THEN it% = 1: tagbc% = 0 IF tagac% = 1 AND cac% = 0 AND it% = 1 THEN it% = 3: tagac% = 0 IF tagac% = 1 AND cac% = 0 AND it% = 3 THEN it% = 1: tagac% = 0 IF tagac% = 1 AND cac% = 0 AND it% = 2 THEN it% = 2: tagac% = 0 END IF IF it% = 1 THEN z% = 4 IF it% = 2 THEN z% = 2 IF it% = 3 THEN z% = 15 LINE (0, 0)-(639, 479), z%, B LINE (1, 1)-(638, 478), z%, B LOOP SUB CENTER (row%, text$) LOCATE row%, 40 - LEN(text$) / 2 PRINT text$ END SUB