' ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ' º SNOWBALL FIGHT V1.5 º ' ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ' Programmed by: AS ' Tested (also) by: Elijah ' Got the Snowing from the Santa.bas Game :) ' Make sure CAPS Lock is on DIM dropy(50) DIM dropx(50), fall(50) RANDOMIZE TIMER CONST PI = 3.14159 CONST pal& = 256 snowtime = 1 SCREEN 7 FOR snowdrop = 1 TO 50 dropx(snowdrop) = INT(RND * 278) dropy(snowdrop) = INT(RND * 300) fall(snowdrop) = INT(RND(1) * 0 + 30) NEXT snowdrop X = 31: Y = 166 M = 230: N = 166 'M = 40: N = 166 S(1) = 100: S(2) = 100 LF(1) = 10: LF(2) = 10 DIM MAN(100), SB(100), MAN2(100), MAN3(100) VIEW SCREEN (2, 30)-(278, 191), , 7 CIRCLE (50, 169), 2, 15 PAINT (51, 170), 15, 15 GET (47, 166)-(53, 172), SB GOSUB CHRS CLS GOSUB STAGE START: PUT (X, Y), MAN, PSET PUT (M, N), MAN, PSET 5 REM ' GET G$ PLACE LOCATE 1, 1 PRINT "FORT POWER% LIFE SNOWBALL" PRINT "1 PLR:"; S(1); " "; LF(1); " "; STR$(MK(1)); "/1 " PRINT "2 PLR:"; S(2); " "; LF(2); " "; STR$(MK(2)); "/1 " IF LF(1) < 1 THEN COLOR 2: PRINT "ONE PLAYER WINS!": GOTO QUIT IF LF(2) < 1 THEN COLOR 2: PRINT "TWO PLAYER WINS!": GOTO QUIT GOSUB SNOW G$ = INKEY$ IF G$ = "O" THEN GOTO MOVE1 IF G$ = "I" AND MK(1) = 1 THEN I = 54: THO = 1: MK(1) = 0 GOSUB THROW1 END IF IF G$ = "I" AND X + 8 = M THEN GOTO MOVE1 IF G$ = "L" AND POINT(X + 9, 170) <> 7 THEN X = X + 1: PUT (X, Y), MAN, PSET IF G$ = "J" AND POINT(X - 1, 170) <> 7 THEN X = X - 1: PUT (X, Y), MAN, PSET IF G$ = "K" AND X = 3 THEN MK(1) = 1 IF G$ = "K" AND X = 31 AND S(1) > 0 THEN GOTO BUILD IF G$ = CHR$(0) + "M" AND POINT(M + 9, 169) <> 7 THEN M = M + 1: PUT (M, N), MAN, PSET IF G$ = CHR$(0) + "K" AND POINT(M - 1, 169) <> 7 THEN M = M - 1: PUT (M, N), MAN, PSET IF G$ = CHR$(0) + "H" AND MK(2) = 1 THEN IT = 213: THT = 1: MK(2) = 0 GOSUB THROW2 END IF IF G$ = CHR$(0) + "H" AND X + 8 = M THEN GOTO MOVE2 IF G$ = CHR$(0) + "P" AND M = 230 AND S(2) > 0 THEN GOSUB BUILD2 IF G$ = CHR$(0) + "P" AND M = 261 THEN MK(2) = 1 IF THO = 1 THEN I = I + 1: GOSUB THROW1 IF THT = 1 THEN IT = IT - 1: GOSUB THROW2 IF POINT(IT, 170) = 15 OR POINT(I, 170) = 15 THEN LINE (I - 2, 170)-(IT + 8, 174), 0, BF THT = 0: THO = 0: IT = 0: I = 0 END IF GOTO 5 SNOW: IF TIMER > z(snowtime) + .001 THEN FOR snowdrop = 1 TO 50 IF gone = 1 THEN PSET (dropx(snowdrop), dropy(snowdrop)), 0 dropy(snowdrop) = dropy(snowdrop) + fall(snowdrop) IF POINT(dropx(snowdrop), dropy(snowdrop)) <> 0 THEN dropy(snowdrop) = 1: dropx(snowdrop) = INT(RND * 640): fall(snowdrop) = INT(RND(1) * 10 + 30) PSET (dropx(snowdrop), dropy(snowdrop)), 15 NEXT snowdrop gone = 1 z(snowtime) = TIMER END IF RETURN RETURN THROW1: IF POINT(I + 6, 169) = 7 THEN S(2) = S(2) - 15 LINE (I + 6, 169)-(I + 9, 175), 0, BF THO = 0: I = 0: RETURN END IF IF POINT(I + 6, 169) = 10 THEN LF(2) = LF(2) - 1: THO = 0: I = 0: RETURN 'CIRCLE (I, 169), 2, 15 'PAINT (I + 1, 170), 15, 15 'FOR J = 1 TO 100: NEXT J 'CIRCLE (I, 169), 2, 0 'PAINT (I + 1, 170), 0, 0 '--- USE THE PUT STATEMENT OR THE CIRCLE/PAINT STATEMENT ABOVE --- PUT (I, 169), SB, PSET RETURN THROW2: IF POINT(IT, 169) = 7 THEN S(1) = S(1) - 15 LINE (IT - 3, 169)-(IT + 1, 175), 0, BF THT = 0: IT = 0: RETURN END IF IF POINT(IT, 169) = 10 THEN LF(1) = LF(1) - 1: THT = 0: IT = 0: RETURN PUT (IT, 169), SB, PSET RETURN MOVE1: LF(2) = LF(2) - 2 LINE (2, 100)-(277, 181), 0, BF PUT (X - 3, Y - 1), MAN2, PSET PUT (X, Y), MAN, PSET: FOR J = 1 TO 50000: NEXT J LINE (2, 100)-(277, 181), 0, BF PUT (X, Y), MAN, PSET PUT (X + 8, Y + 9), MAN2, PSET: FOR J = 1 TO 50000: NEXT J LINE (2, 100)-(277, 181), 0, BF GOTO START MOVE2: LF(1) = LF(1) - 2 LINE (2, 100)-(277, 181), 0, BF PUT (M - 5, N - 1), MAN3, PSET PUT (M, N), MAN, PSET: FOR J = 1 TO 50000: NEXT J LINE (2, 100)-(277, 181), 0, BF PUT (M, N), MAN, PSET PUT (M - 18, N + 9), MAN3, PSET: FOR J = 1 TO 50000: NEXT J LINE (2, 100)-(277, 181), 0, BF GOTO START GOTO 5 QUIT: LOCATE 1, 1 PRINT "PRESS TO END" PRINT "PRESS TO PLAY AGAIN" DO G$ = INKEY$ IF G$ = "Q" THEN END IF G$ = CHR$(13) THEN RUN LOOP END BUILD: LINE (40, 166)-(50, 182), 7, BF GOTO 5 BUILD2: LINE (220, 166)-(229, 182), 7, BF GOTO 5 STAGE: LINE (2, 30)-(270, 191), 7, B LINE (0, 183)-(270, 191), 8, BF LINE (40, 166)-(50, 182), 7, BF LINE (220, 166)-(230, 182), 7, BF RETURN CHRS: CLS CIRCLE (34, 169), 2, 10 LINE (34, 172)-(31, 175), 10 LINE (34, 172)-(37, 175), 10 LINE (34, 172)-(34, 177), 10 LINE (34, 178)-(31, 181), 10 LINE (34, 178)-(37, 181), 10 GET (30, 166)-(38, 182), MAN CIRCLE (64, 169), 2, 10 LINE (61, 169)-(55, 169), 10 LINE (54, 169)-(51, 166), 10 GET (50, 165)-(67, 172), MAN2 CLS CIRCLE (64, 169), 2, 10 LINE (67, 169)-(73, 169), 10 LINE (74, 169)-(77, 166), 10 GET (61, 165)-(78, 172), MAN3 RETURN