'===========================================================================
' Subject: MARIO BROTHERS CLONE (TEXT)        Date: 06-03-96 (15:00)       
'  Author: John Wantland                      Code: QB, QBasic, PDS        
'  Origin: kwantlan@coffey.com              Packet: GAMES.ABC
'===========================================================================
REM mario bros.
DIM l$(22)
PRINT "Use the arrow keys to move around. Hit the block under the enemy"
PRINT "to knock him over. "
PRINT "M = you"
PRINT "T = turtles"
PRINT "press a key to start"
DO
a$ = INKEY$
IF a$ <> "" THEN EXIT DO
LOOP
l$(1) = "                                        "
l$(2) = "мммммл                            лммммм"
l$(3) = "пппппллллллллл            лллллллллппппп"
l$(4) = "                                        "
l$(5) = "                                        "
l$(6) = "                                        "
l$(7) = "            лллллллллллллллл            "
l$(8) = "                                        "
l$(9) = "                                        "
l$(10) = "                                        "
l$(11) = "лллллллллллллл            лллллллллллллл"
l$(12) = "                                        "
l$(13) = "                                        "
l$(14) = "                                        "
l$(15) = "            лллллллллллллллл            "
l$(16) = "                                        "
l$(17) = "                    #                   "
l$(18) = "                                        "
l$(19) = "лллллллллллллл            лллллллллллллл"
l$(20) = "                                        "
l$(21) = "мммммл                            лммммм"
l$(22) = "пппппл                            лппппп"
WIDTH 40, 25
CLS

r = 22
c = 21
tr = 2
tc = 7
tr2 = 2
tc2 = 34
l = 5
p = 0
n = 0
o = 0
u = 0
q = 0
v = 0
b = 0
g = 1
h = 2
w = 0
pow = 3


DO

LOCATE 1, 1
FOR i = 1 TO 22
COLOR 2, 0
PRINT l$(i)
NEXT i

LOCATE 23, 1
COLOR 7, 0
PRINT "Lives"; l; "               Points"; p

LOCATE r, c
COLOR 4, 0
PRINT "M"

IF n = 1 THEN e = 2:  ELSE e = 10
LOCATE tr, tc
COLOR e, 0
PRINT "T"
IF o = 1 THEN a = 2:  ELSE a = 10
LOCATE tr2, tc2
COLOR a, 0
PRINT "T"

IF (r = tr AND (tc = c AND n = 0)) THEN l = l - 1: IF l <= 0 THEN CLS : PRINT "Game over": END:  ELSE r = 22: c = 21: tr = 2: tc = 7: tr2 = 2: tc2 = 34: n = 0: pow = 3

IF (r = tr2 AND (tc2 = c AND o = 0)) THEN l = l - 1: pow = 3: IF l <= 0 THEN CLS : PRINT "Game over": END:  ELSE r = 22: c = 21: tr = 2: tc = 7: tr2 = 2: tc2 = 34: o = 0: pow = 3

IF (r = tr AND (c = tc AND n = 1)) THEN p = p + 1: tr = 2: tc = 7: n = 0

IF (r = tr2 AND (c = tc2 AND o = 1)) THEN p = p + 1: tr2 = 2: tc2 = 34: o = 0

FOR nothing = 1 TO 200: NEXT nothing
'change depending on the speed of your computer

olr = r
oc = c
a$ = INKEY$: IF a$ = "" THEN GOTO nokey
IF a$ = CHR$(27) THEN END
   IF LEN(a$) = 2 THEN ky = -ASC(RIGHT$(a$, 1)):  ELSE ky = ASC(a$)
    


SELECT CASE ky
CASE IS = -75
c = c - 1
CASE IS = -77
c = c + 1
CASE IS = -72
IF u = 0 THEN u = 1
END SELECT

nokey: IF u = 0 AND r < 22 THEN r = r + 1

IF u = 1 THEN r = r - 1: q = q + 1:  IF q >= 6 THEN u = 0: q = 0

IF r = 0 THEN u = 0: q = 0: r = r + 1

IF MID$(l$(r), c, 1) = "л" THEN r = olr
IF MID$(l$(r), c, 1) = "л" AND MID$(l$(r - 1), c, 1) = "T" AND n = 0 THEN n = 1: v = 0
IF MID$(l$(r), c, 1) = "л" AND MID$(l$(r - 1), c, 1) = "T" AND n = 1 THEN n = 0
IF MID$(l$(r), c, 1) = "л" AND MID$(l$(r - 1), c, 1) = "T" AND o = 0 THEN o = 1: b = 0
IF MID$(l$(r), c, 1) = "л" AND MID$(l$(r - 1), c, 1) = "T" AND o = 1 THEN o = 0
a$ = MID$(l$(r - 1), c, 1)
IF a$ = "#" AND pow > 0 THEN pow = pow - 1: n = 1: o = 1: r = olr


IF n = 1 THEN v = v + 1: IF v >= 250 THEN n = 0
IF o = 1 THEN b = b + 1: IF b >= 250 THEN o = 0

IF c >= 41 OR c <= 1 THEN c = oc


IF c = tc2 AND r - 2 = tr2 THEN o = 1: b = 0

IF RND >= .6 THEN
IF n = 0 THEN
otr = tr
IF g = 1 THEN tc = tc + 1: IF tc >= 40 THEN g = 2
IF g = 2 THEN tc = tc - 1: IF tc <= 1 THEN g = 1
tr = tr + 1: IF tr >= 23 THEN tr = 22
IF tr < 22 THEN IF MID$(l$(tr), tc, 1) = "л" THEN tr = otr:  ELSE g = INT(RND * 2 + 1)
IF tr >= 22 AND (tc = 7 OR tc = 34) THEN tr = 2: tc = 7: g = 1
END IF
END IF

IF RND <= .4 THEN
IF o = 0 THEN
otr2 = tr2
IF h = 1 THEN tc2 = tc2 + 1: IF tc2 >= 40 THEN h = 2
IF h = 2 THEN tc2 = tc2 - 1: IF tc2 <= 1 THEN h = 1
tr2 = tr2 + 1: IF tr2 >= 23 THEN tr2 = 22
IF tr2 < 22 THEN IF MID$(l$(tr2), tc2, 1) = "л" THEN tr2 = otr2:  ELSE h = INT(RND * 2 + 1)
IF tr2 >= 22 AND (tc2 = 7 OR tc2 = 34) THEN tr2 = 2: tc2 = 34: h = 2
END IF
END IF

LOOP

