' X, Y--Q,W COORDINATES ' SX,SY FIREBALL COORDINATES TX & TY ARE FOR 2 PLR ' B FALL COORDINATE 1 PLR FALL OR 2 PLR FALL ' I LOOP ' PIP(I) COORDINATE FOR LEFT SIDE OF PIPE ' PL(I) COORDINATE FOR THE RIGHT SIDE OF THE PIPE ' I.E. FROM PIP(I) TO PL(I) PIP-> ========= <-PL ' FL COORDINATE OF THE FALL PLACE (LEFT SIDE) ' FFL COORDINATE OF THE FALL PLACE (RIGHT SIDE) ' DIM M 1ST MARIO CHR, MR 2ND MARIO CHR ' FB FIREBALL ' CT COUNTER FOR HOW LONG STAY IN AIR FOR JUMP ' CHANGE THE 2ND LINE AFTER START: CHANGE THAT NUMBER IN THAT LINE ' TO A HIGHER NUMBER TO STAY IN THE AIR LONGER. ' N N=1 DISPLAY FIRST MARIO ACTION, N=2 DISPLAY 2ND MARIO ACTION WHEN WALKING ' ENO ENERGY 1 PLR -- ENT ENERGY 2 PLR FL = 0: FFL = 0 ENO = 100 ENT = 295 SCREEN 13 PRINT "MARIO FIGHTING": PRINT : PRINT "PRESS ANYKEY TO BEGIN" PRINT : PRINT "PRESS ESC TO END THE GAME (USE ASDW AND ARROWS KEYS TO MOVE)" PRINT "USE Q AND 0 FOR FIREBALL SPITTING" DO: G$ = INKEY$: LOOP UNTIL G$ <> "" IF G$ <> CHR$(27) THEN GOTO HERE CLS INPUT "INFINITE HEALTH: (1-YES 0-N0)"; X IF X = 1 THEN INF = 1 INPUT "NO HEALTH 1 PLR: (1 OR 0)"; X IF X = 1 THEN ENO = 5 INPUT "NO HEALTH 2 PLR: (1 0R 0)"; X IF X = 1 THEN ENT = 200 INPUT "FALL IN HOLE OFF (1 OR 0)"; HLE PRINT "HOLE (PIT) SIZE" INPUT "ENTER # FOR LEFT SIDE (0-250)"; XL IF XL < 0 THEN FL = 0 IF XL > 250 THEN FL = 250 FL = XL INPUT "ENTER # FOR RIGHT SIDE (0-250)"; XTL IF XTL < 0 THEN FFL = 0 IF XTL > 250 THEN FFL = 250 'FFL = XTL HERE: RANDOMIZE TIMER X = 300: Y = 100 Q = 33: W = 100 CLS DIM M(500), MR(500), FB(100), MT(500), MTR(500) 'DIM FL(DF), FFL(DF) CLS GOSUB STAGE: GOSUB MARIO: GOSUB STAGE 2 LOCATE 1, 1: INPUT "THAT STAGE"; X$ IF LEFT$(X$, 1) = "N" OR LEFT$(X$, 1) = "n" THEN GOSUB STAGE: GOTO 2 LOCATE 1, 1: COLOR 1: PRINT "лллллллллллллллллл": COLOR 15 PUT (X, Y), MR, PSET PUT (Q, W), MTR, PSET PALETTE 5, 25 LINE (4, 4)-(101, 11), 14, B: LINE (5, 5)-(100, 10), 2, BF LINE (199, 4)-(296, 11), 14, B: LINE (200, 5)-(295, 10), 2, BF START: IF ENO < 5 AND INF <> 1 THEN LOCATE 1, 1: PRINT "2 PLR WINS!": END IF ENT < 200 AND INF <> 1 THEN LOCATE 1, 1: PRINT "1 PLR WINS!": END IF ENO < 100 THEN LINE (ENO, 5)-(100, 10), 4, BF IF ENT < 295 THEN LINE (ENT, 5)-(295, 10), 4, BF IF CT > 0 THEN CT = CT + 1 IF CP > 0 THEN CP = CP + 1 IF SX > 0 THEN GOTO SPIT IF TX > 0 THEN GOTO SPIT2 4 G$ = INKEY$: IF G$ = "" THEN GOTO START IF G$ = CHR$(27) THEN END IF G$ = "0" AND SX = 0 THEN SX = X - 5: SY = Y: GOTO SPIT IF G$ = "Q" AND TX = 0 THEN TX = Q + 15: TY = W: GOTO SPIT2 IF G$ = CHR$(0) + "H" AND CT = 0 THEN MV = 1: GOSUB ERSE Y = Y - 50: CT = 1: GOTO WALK END IF IF G$ = "W" AND CP = 0 THEN MV = 2: GOSUB ERSE W = W - 50: CP = 1: GOTO WALK END IF IF G$ = "D" AND Q < 294 THEN MV = 2: GOSUB ERSE Q = Q + 3: N = N + 1 GOTO WALK END IF IF G$ = "A" AND Q > 3 THEN MV = 2: GOSUB ERSE Q = Q - 3: N = N - 1 GOTO WALK END IF IF G$ = CHR$(0) + "M" AND X < 294 THEN MV = 1: GOSUB ERSE X = X + 3: N = N + 1 GOTO WALK END IF IF G$ = CHR$(0) + "K" AND X > 3 THEN MV = 1: GOSUB ERSE X = X - 3: N = N - 1 GOTO WALK END IF IF G$ = CHR$(0) + "P" THEN CT = 20000 GOTO DOWN END IF IF G$ = "S" THEN CP = 20000 GOTO DOWN END IF GOTO START ERSE: IF MV = 1 THEN LINE (X, Y)-(X + 18, Y + 33), 1, BF IF MV = 2 THEN LINE (Q, W)-(Q + 18, W + 33), 1, BF RETURN SPIT: IF SX = TX AND SY = TY THEN LINE (SX - 1, SY + 10)-(SX + 6, SY + 16), 1, BF TX = 0: SX = 0: SY = 0: TY = 0 GOTO START END IF SX = SX - 1 IF SX <= 3 OR (SX = Q AND Y = W) THEN LINE (SX - 1, SY + 10)-(SX + 6, SY + 16), 1, BF IF Q - 2 > 3 AND (SX = Q AND Y = W) THEN Q = Q - 2 IF INF <> 1 THEN ENO = ENO - 5 SY = 0: SX = 0 GOTO WALK END IF PUT (SX, SY + 10), FB, PSET: FOR I = 1 TO 50: NEXT I GOTO 4 SPIT2: IF TX = SX AND TY = SY THEN LINE (TX - 1, TY + 10)-(TX + 6, TY + 16), 1, BF TX = 0: SX = 0: SY = 0: TY = 0 GOTO START END IF TX = TX + 1 IF TX >= 310 OR (TX = X AND TY = Y) THEN LINE (TX - 1, TY + 10)-(TX + 6, TY + 16), 1, BF IF X + 2 < 294 AND (TX = X AND TY = Y) THEN X = X + 2 IF INF <> 1 THEN ENT = ENT - 5 TY = 0: TX = 0 GOTO WALK END IF PUT (TX, TY + 10), FB, PSET: FOR I = 1 TO 50: NEXT I GOTO 4 DOWN: IF X > PIP(1) AND Q < PL(1) AND W = 100 AND G$ = "S" THEN GOSUB ERSE: Q = PL(2) - 3: GOTO WALK IF X > PIP(2) AND Q < PL(2) AND W = 100 AND G$ = "S" THEN GOSUB ERSE: Q = PL(1) - 3: GOTO WALK IF X > PIP(1) AND X < PL(1) AND Y = 100 THEN GOSUB ERSE: X = PL(2) - 3: GOTO WALK IF X > PIP(2) AND X < PL(2) AND Y = 100 THEN GOSUB ERSE: X = PL(1) - 3: GOTO WALK GOTO WALK FALL: GOSUB ERSE IF MV = 1 THEN B = X ELSE B = Q FOR I = 100 TO 166 IF MV = 1 THEN PUT (B, I), MR, PSET IF MV = 2 THEN PUT (B, I), MTR, PSET FOR Z = 1 TO 500: NEXT Z NEXT I IF HLE = 1 THEN IF MV = 1 THEN Y = 166 IF MV = 2 THEN W = 166 GOTO START END IF LOCATE 10, 10: PRINT "GAME OVER": FOR Z = 1 TO 20000: NEXT Z RUN WALK: IF Q > FL AND Q < FFL AND W = 100 THEN GOTO FALL IF X > FL AND X < FFL AND Y = 100 THEN GOTO FALL IF N > 2 THEN N = 1 IF N < 1 THEN N = 2 IF N = 1 AND MV = 1 THEN PUT (X, Y), M, PSET IF N = 2 AND MV = 1 THEN PUT (X, Y), MR, PSET IF N = 1 AND MV = 2 THEN PUT (Q, W), MT, PSET IF N = 2 AND MV = 2 THEN PUT (Q, W), MTR, PSET GOTO START MARIO: LINE (5, 1)-(9, 1), 4 LINE (5, 2)-(11, 2), 4: PSET (5, 2), 6 LINE (5, 3)-(12, 3), 4: LINE (5, 3)-(6, 3), 6 LINE (2, 4)-(12, 4), 4 LINE (4, 5)-(12, 5), 6: PSET (7, 5), 5: LINE (10, 5)-(12, 5), 5 LINE (2, 6)-(13, 6), 6: LINE (6, 6)-(7, 6), 5: PSET (10, 6), 5: PSET (13, 6), 5 LINE (1, 7)-(13, 7), 6: LINE (9, 7)-(10, 7), 5: PSET (13, 7), 5 LINE (1, 8)-(14, 8), 6: PSET (5, 8), 5: LINE (9, 8)-(10, 8), 5: LINE (13, 8)-(14, 8), 5 LINE (2, 9)-(14, 9), 6: LINE (2, 9)-(7, 9), 5: LINE (13, 9)-(14, 9), 5 LINE (2, 10)-(13, 10), 6: LINE (2, 10)-(6, 10), 5: LINE (12, 10)-(13, 10), 5 LINE (3, 11)-(11, 11), 6: PSET (11, 11), 5 LINE (6, 12)-(8, 12), 6: LINE (9, 12)-(11, 12), 4: PSET (12, 12), 5 LINE (7, 13)-(13, 13), 5: PSET (8, 13), 4: PSET (12, 13), 4 LINE (6, 14)-(13, 14), 5: LINE (12, 13)-(12, 26), 4 LINE (13, 13)-(13, 27), 5: LINE (13, 16)-(13, 22), 4 LINE (13, 23)-(16, 23), 5: LINE (16, 23)-(16, 29), 5: LINE (16, 29)-(14, 27), 5 PAINT (14, 24), 5, 5 PSET (7, 14), 4 LINE (10, 26)-(12, 26), 4: LINE (4, 25)-(12, 25), 4: LINE (4, 26)-(4, 18), 4 LINE (5, 17)-(5, 15), 4: LINE (5, 15)-(11, 15), 4: PAINT (6, 18), 4, 4 LINE (5, 26)-(7, 26), 4: LINE (4, 22)-(6, 24), 5: LINE (7, 24)-(8, 25), 5 LINE (3, 23)-(3, 24), 4: LINE (4, 27)-(7, 30), 5, BF: LINE (2, 29)-(3, 30), 5, B LINE (1, 16)-(4, 19), 6, BF: LINE (3, 15)-(4, 15), 6: LINE (4, 18)-(4, 19), 5 LINE (5, 16)-(9, 19), 5, BF: LINE (10, 18)-(10, 13), 5: LINE (7, 15)-(11, 15), 5 PSET (11, 16), 5 GET (0, 0)-(17, 33), M GOSUB STAGE: PUT (2, 3), M, PSET GET (0, 0)-(19, 33), M ' 2 PLR DRAW GOSUB STAGE LINE (5, 1)-(9, 1), 14 LINE (5, 2)-(11, 2), 14: PSET (5, 2), 6 LINE (5, 3)-(12, 3), 14: LINE (5, 3)-(6, 3), 6 LINE (2, 4)-(12, 4), 14 LINE (4, 5)-(12, 5), 6: PSET (7, 5), 5: LINE (10, 5)-(12, 5), 5 LINE (2, 6)-(13, 6), 6: LINE (6, 6)-(7, 6), 5: PSET (10, 6), 5: PSET (13, 6), 5 LINE (1, 7)-(13, 7), 6: LINE (9, 7)-(10, 7), 5: PSET (13, 7), 5 LINE (1, 8)-(14, 8), 6: PSET (5, 8), 5: LINE (9, 8)-(10, 8), 5: LINE (13, 8)-(14, 8), 5 LINE (2, 9)-(14, 9), 6: LINE (2, 9)-(7, 9), 5: LINE (13, 9)-(14, 9), 5 LINE (2, 10)-(13, 10), 6: LINE (2, 10)-(6, 10), 5: LINE (12, 10)-(13, 10), 5 LINE (3, 11)-(11, 11), 6: PSET (11, 11), 5 LINE (6, 12)-(8, 12), 6: LINE (9, 12)-(11, 12), 14: PSET (12, 12), 5 LINE (7, 13)-(13, 13), 5: PSET (8, 13), 14: PSET (12, 13), 14 LINE (6, 14)-(13, 14), 5: LINE (12, 13)-(12, 26), 14 LINE (13, 13)-(13, 27), 5: LINE (13, 16)-(13, 22), 14 LINE (13, 23)-(16, 23), 5: LINE (16, 23)-(16, 29), 5: LINE (16, 29)-(14, 27), 5 PAINT (14, 24), 5, 5 PSET (7, 14), 14 LINE (10, 26)-(12, 26), 14: LINE (4, 25)-(12, 25), 14: LINE (4, 26)-(4, 18), 14 LINE (5, 17)-(5, 15), 14: LINE (5, 15)-(11, 15), 14: PAINT (6, 18), 14, 14 LINE (5, 26)-(7, 26), 14: LINE (4, 22)-(6, 24), 5: LINE (7, 24)-(8, 25), 5 LINE (3, 23)-(3, 24), 14: LINE (4, 27)-(7, 30), 5, BF: LINE (2, 29)-(3, 30), 5, B LINE (1, 16)-(4, 19), 6, BF: LINE (3, 15)-(4, 15), 6: LINE (4, 18)-(4, 19), 5 LINE (5, 16)-(9, 19), 5, BF: LINE (10, 18)-(10, 13), 5: LINE (7, 15)-(11, 15), 5 PSET (11, 16), 5 GET (0, 0)-(17, 33), MT GOSUB STAGE: PUT (2, 3), MT, PSET GET (0, 0)-(19, 33), MT ' 2 MARIO ACTION GOSUB STAGE LINE (5, 1)-(9, 1), 4 LINE (5, 2)-(11, 2), 4: PSET (5, 2), 6 LINE (5, 3)-(12, 3), 4: LINE (5, 3)-(6, 3), 6 LINE (2, 4)-(12, 4), 4 LINE (4, 5)-(12, 5), 6: PSET (7, 5), 5: LINE (10, 5)-(12, 5), 5 LINE (2, 6)-(13, 6), 6: LINE (6, 6)-(7, 6), 5: PSET (10, 6), 5: PSET (13, 6), 5 LINE (1, 7)-(13, 7), 6: LINE (9, 7)-(10, 7), 5: PSET (13, 7), 5 LINE (1, 8)-(14, 8), 6: PSET (5, 8), 5: LINE (9, 8)-(10, 8), 5: LINE (13, 8)-(14, 8), 5 LINE (2, 9)-(14, 9), 6: LINE (2, 9)-(7, 9), 5: LINE (13, 9)-(14, 9), 5 LINE (2, 10)-(13, 10), 6: LINE (2, 10)-(6, 10), 5: LINE (12, 10)-(14, 10), 5 LINE (3, 11)-(11, 11), 6: LINE (11, 11)-(12, 11), 5 LINE (6, 12)-(8, 12), 6: LINE (8, 12)-(10, 12), 5 PSET (1, 13), 6: LINE (5, 13)-(11, 13), 4: LINE (6, 13)-(7, 13), 5 LINE (0, 14)-(2, 16), 6, BF: PSET (1, 17), 6 LINE (12, 27)-(3, 15), 4, BF: LINE (4, 14)-(12, 14), 5: PSET (4, 14), 4: LINE (7, 14)-(8, 14), 4 LINE (0, 24)-(4, 28), 5, BF: LINE (0, 23)-(1, 23), 5: PSET (0, 22), 5 LINE (13, 24)-(14, 16), 6, B: LINE (13, 15)-(10, 19), 5, BF LINE (8, 15)-(8, 17), 5: LINE (9, 14)-(9, 18), 5: LINE (14, 16)-(12, 20), 5, B LINE (15, 19)-(15, 20), 5: LINE (15, 21)-(15, 23), 6 LINE (12, 24)-(12, 21), 6: LINE (11, 21)-(11, 22), 6: PSET (3, 15), 5 LINE (5, 15)-(5, 18), 5: LINE (4, 16)-(4, 19), 5: PSET (3, 19), 6: PSET (6, 19), 6 LINE (0, 17)-(2, 19), 5: LINE (2, 19)-(2, 17), 5 PSET (8, 27), 5: LINE (9, 27)-(11, 25), 5 LINE (8, 28)-(11, 28), 4: PSET (10, 29), 4 LINE (12, 28)-(14, 31), 5, BF: PSET (11, 29), 5: LINE (11, 32)-(13, 32), 5 LINE (13, 27)-(15, 29), 5, B: PSET (13, 26), 5 GET (0, 0)-(17, 32), MR GOSUB STAGE: PUT (2, 1), MR, PSET GET (0, 0)-(19, 33), MR GOSUB STAGE: PUT (1, 1), MR, PSET CIRCLE (100, 100), 2.5, 14 PAINT (101, 101), 4, 14 GET (97, 97)-(104, 104), FB '2 PLR DRAW GOSUB STAGE LINE (5, 1)-(9, 1), 14 LINE (5, 2)-(11, 2), 14: PSET (5, 2), 6 LINE (5, 3)-(12, 3), 14: LINE (5, 3)-(6, 3), 6 LINE (2, 4)-(12, 4), 14 LINE (4, 5)-(12, 5), 6: PSET (7, 5), 5: LINE (10, 5)-(12, 5), 5 LINE (2, 6)-(13, 6), 6: LINE (6, 6)-(7, 6), 5: PSET (10, 6), 5: PSET (13, 6), 5 LINE (1, 7)-(13, 7), 6: LINE (9, 7)-(10, 7), 5: PSET (13, 7), 5 LINE (1, 8)-(14, 8), 6: PSET (5, 8), 5: LINE (9, 8)-(10, 8), 5: LINE (13, 8)-(14, 8), 5 LINE (2, 9)-(14, 9), 6: LINE (2, 9)-(7, 9), 5: LINE (13, 9)-(14, 9), 5 LINE (2, 10)-(13, 10), 6: LINE (2, 10)-(6, 10), 5: LINE (12, 10)-(14, 10), 5 LINE (3, 11)-(11, 11), 6: LINE (11, 11)-(12, 11), 5 LINE (6, 12)-(8, 12), 6: LINE (8, 12)-(10, 12), 5 PSET (1, 13), 6: LINE (5, 13)-(11, 13), 14: LINE (6, 13)-(7, 13), 5 LINE (0, 14)-(2, 16), 6, BF: PSET (1, 17), 6 LINE (12, 27)-(3, 15), 14, BF: LINE (4, 14)-(12, 14), 5: PSET (4, 14), 14: LINE (7, 14)-(8, 14), 14 LINE (0, 24)-(4, 28), 5, BF: LINE (0, 23)-(1, 23), 5: PSET (0, 22), 5 LINE (13, 24)-(14, 16), 6, B: LINE (13, 15)-(10, 19), 5, BF LINE (8, 15)-(8, 17), 5: LINE (9, 14)-(9, 18), 5: LINE (14, 16)-(12, 20), 5, B LINE (15, 19)-(15, 20), 5: LINE (15, 21)-(15, 23), 6 LINE (12, 24)-(12, 21), 6: LINE (11, 21)-(11, 22), 6: PSET (3, 15), 5 LINE (5, 15)-(5, 18), 5: LINE (4, 16)-(4, 19), 5: PSET (3, 19), 6: PSET (6, 19), 6 LINE (0, 17)-(2, 19), 5: LINE (2, 19)-(2, 17), 5 PSET (8, 27), 5: LINE (9, 27)-(11, 25), 5 LINE (8, 28)-(11, 28), 14: PSET (10, 29), 14 LINE (12, 28)-(14, 31), 5, BF: PSET (11, 29), 5: LINE (11, 32)-(13, 32), 5 LINE (13, 27)-(15, 29), 5, B: PSET (13, 26), 5 GET (0, 0)-(17, 32), MTR GOSUB STAGE: PUT (2, 1), MTR, PSET GET (0, 0)-(19, 33), MTR GOSUB STAGE: PUT (1, 1), MTR, PSET RETURN STAGE: LINE (0, 0)-(340, 300), 1, BF LINE (0, 134)-(340, 135), 2, B PAINT (1, 136), 19, 2 ' -----------------MAKE THE PIT (HOLE) IF XL = 0 THEN FL = INT(RND(1) * 250 + 10) FFL = (FL + 40) + XTL LINE (FL + 4, 134)-(FFL + 17, 200), 1, BF FOR I = 1 TO 2 ' -----------------MAKE THE PIPE 500 PIP(I) = INT(RND(1) * 250 + 10) ' IF PIP(I) = FL OR PIP(1) = PIP(2) OR (PIP(I) > FL AND PIP(I) < FFL) THEN GOTO 500 PL(I) = PIP(I) + 17 NEXT I FOR I = 1 TO 2 LINE (PIP(I) + 3, 134)-(PL(I) + 18, 140), 2, BF LINE (PIP(I) + 4, 134)-(PL(I) + 17, 160), 2, BF LINE (PIP(I) + 2, 134)-(PIP(I) + 2, 140), 0 LINE (PL(I) + 19, 134)-(PL(I) + 19, 140), 0 LINE (PIP(I) + 2, 141)-(PL(I) + 19, 141), 0 LINE (PIP(I) + 6, 134)-(PIP(I) + 6, 140), 15 LINE (PIP(I) + 8, 142)-(PIP(I) + 8, 160), 15 LINE (PIP(I) + 4, 142)-(PIP(I) + 4, 160), 0 LINE (PL(I) + 17, 142)-(PL(I) + 17, 160), 0 NEXT I RETURN