Qbasicnews.com

Full Version: Make the BEST old fashioned game! BOMBERMAN, PACMAN, PONG...
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
That's right: make the best old fashoined game you can think of!

PACKMAN (Keys: a, d, w, s; end with Q) (awesome engine)

Code:
DIM map(100, 100)
SCREEN 13

FOR yer = 0 TO 19
FOR xer = 0 TO 30
READ map(xer, yer)
NEXT xer
NEXT yer

DATA 4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,4
DATA 0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0
DATA 0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,4,1,0
DATA 0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0
DATA 0,1,0,1,0,1,1,1,1,1,0,4,0,0,0,1,0,0,0,4,0,1,1,1,1,1,0,1,0,1,0
DATA 0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0
DATA 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0
DATA 0,1,0,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1,0,1,0,1,0
DATA 0,1,0,1,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,1,0,1,0,1,0
DATA 0,1,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,4,1,0
DATA 4,1,1,1,1,1,1,0,0,1,1,0,0,0,0,2,0,0,0,0,1,1,0,0,1,1,1,1,1,1,4
DATA 0,1,4,0,0,0,0,0,0,0,1,0,0,0,0,4,0,0,0,0,1,0,0,0,0,0,0,0,4,1,0
DATA 0,1,0,1,0,1,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,1,0,1,0,1,0
DATA 0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,0
DATA 0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0
DATA 0,1,0,1,0,1,1,1,1,1,0,4,0,0,0,1,0,0,0,4,0,1,1,1,1,1,0,1,0,1,0
DATA 0,1,0,1,0,1,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0
DATA 0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,4,1,0
DATA 0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0
DATA 4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,4

mi = 7

d$ = "1"

sp = .99

FOR yer = 0 TO 19
FOR xer = 0 TO 30
d = map(xer, yer)
IF (d = 0) THEN
PSET ((xer * 10) + 5, (yer * 10) + 5), 1
ELSEIF (d = 4) THEN
CIRCLE ((xer * 10) + 5, (yer * 10) + 5), 2, INT(RND * 256)
ELSEIF (d = 1) THEN
LINE ((xer * 10) + 1, (yer * 10) + 1)-((xer * 10) + 9, (yer * 10) + 9), 2, BF
ELSEIF (d = 2) THEN
LINE ((xer * 10) + 1, (yer * 10) + 1)-((xer * 10) + 9, (yer * 10) + 9), 4, BF
FOR i = 2 TO mi
x(i) = (xer * 10) - 10
y(i) = (yer * 10)
NEXT i
ELSEIF (d = 3) THEN
x(1) = xer * 10
y(1) = yer * 10
map(xer, yer) = 0
END IF
NEXT xer
NEXT yer

FOR yer = 0 TO 7
FOR xer = 0 TO 7
READ ghost(xer, yer)
NEXT xer
NEXT yer

DATA 0,0,3,3,3,3,0,0
DATA 0,3,0,0,0,0,3,0
DATA 0,3,4,0,0,4,3,0
DATA 3,0,0,0,0,0,0,3
DATA 3,0,0,4,4,0,0,3
DATA 3,0,0,0,0,0,0,3
DATA 3,0,3,0,3,3,0,3
DATA 0,3,0,3,0,0,3,0

FOR i = 2 TO mi
g = INT(RND * 3) + 1
IF g = 1 THEN d$(i) = "1"
IF g = 2 THEN d$(i) = "2"
IF g = 3 THEN d$(i) = "3"
IF g = 4 THEN d$(i) = "4"
NEXT i

DO
Key$ = INKEY$
RANDOMIZE TIMER
FOR i = 1 TO mi

r = r + 1

IF (r > 4) THEN
END IF

olx(i) = x(i)
oly(i) = y(i)

yex = 0
yey = 0
h$ = "N"
FOR yer = 0 TO 19
FOR xer = 0 TO 30
d = map(xer, yer)
h$ = "N"
IF (d = 0) THEN
IF (x(1) + 5 > (xer * 10) AND x(1) + 5 < (xer * 10) + 10) THEN
IF (y(1) + 5 > (yer * 10) AND y(1) + 5 < (yer * 10) + 10) THEN
SCORE = SCORE + 1
map(xer, yer) = -1
END IF
END IF
ELSEIF (d = 4) THEN
IF (x(1) + 5 > (xer * 10) AND x(1) + 5 < (xer * 10) + 10) THEN
IF (y(1) + 5 > (yer * 10) AND y(1) + 5 < (yer * 10) + 10) THEN
SCORE = SCORE + 5
map(xer, yer) = -1
st = 60
st$ = "Y"
END IF
END IF
END IF
IF (d = 1 OR d = 2) THEN
IF (x(i) + 9 > (xer * 10) AND x(i) < (xer * 10) + 9 OR x(i) > 310 OR x(i) < 1) THEN
IF (y(i) + 9 > (yer * 10) AND y(i) < (yer * 10) + 9 OR y(i) > 190 OR y(i) < 1) THEN
h$ = "Y"
IF (h$ = "Y") THEN
IF (d$(i) = "1") THEN y(i) = y(i) + sp
IF (d$(i) = "2") THEN y(i) = y(i) - sp
IF (d$(i) = "3") THEN x(i) = x(i) + sp
IF (d$(i) = "4") THEN x(i) = x(i) - sp
IF (i = 1) THEN
d$(i) = ""
END IF
IF (i > 1) THEN
pd$(i) = d$(i)
xs(i) = 0
ys(i) = 0
DO
des = des + 1
g = INT(RND * 5)
IF g = 1 THEN d$(i) = "1"
IF g = 2 THEN d$(i) = "2"
IF g = 3 THEN d$(i) = "3"
IF g = 4 THEN d$(i) = "4"
IF (x(i) + 19 > (xer * 10) AND x(i) < (xer * 10) + 19 AND (yer * 10) AND y(i) < (yer * 10) + 9 OR y(i) > 200 OR y(i) < 1) THEN
ELSE
g = 4
END IF
LOOP UNTIL d$(i) <> pd$(i)
END IF
END IF
END IF
END IF
END IF
NEXT xer
NEXT yer

IF (d$(i) = "") THEN
xs(i) = 0
ys(i) = 0
END IF

x(i) = x(i) + xs(i)
y(i) = y(i) + ys(i)

IF (Key$ = "w") THEN
old$(1) = d$(1)
d$(1) = "1"
xs(1) = 0
ys(1) = 0
ELSEIF (Key$ = "s") THEN
old$(1) = d$(1)
d$(1) = "2"
xs(1) = 0
ys(1) = 0
ELSEIF (Key$ = "a") THEN
old$(1) = d$(1)
d$(1) = "3"
xs(1) = 0
ys(1) = 0
ELSEIF (Key$ = "d") THEN
old$(1) = d$(1)
d$(1) = "4"
xs(1) = 0
ys(1) = 0
END IF

IF (d$(i) = "1") THEN ys(i) = 0 - sp
IF (d$(i) = "2") THEN ys(i) = sp
IF (d$(i) = "3") THEN xs(i) = 0 - sp
IF (d$(i) = "4") THEN xs(i) = sp
IF (old$(i) = "1") THEN olys(i) = 0 - sp
IF (old$(i) = "2") THEN olys(i) = sp
IF (old$(i) = "3") THEN olxs(i) = 0 - sp
IF (old$(i) = "4") THEN olxs(i) = sp

IF (i = 1) THEN
IF (st > 0) THEN
CIRCLE (olx(i) + 5, oly(i) + 5), 4, 0
CIRCLE (x(i) + 5, y(i) + 5), 4, (INT(RND * 256))
ELSE
CIRCLE (olx(i) + 5, oly(i) + 5), 4, 0
CIRCLE (x(i) + 5, y(i) + 5), 4, 14
END IF
ELSEIF (i > 1) THEN
FOR yer = 0 TO 7
FOR xer = 0 TO 7
IF (ghost(xer, yer) <> 0) THEN
PSET (olx(i) + xer + 1, oly(i) + yer + 2), 0
PSET (x(i) + xer + 1, y(i) + yer + 2), ghost(xer, yer)
END IF
NEXT xer
NEXT yer
END IF

der$ = "N"
FOR yer = 0 TO 19
FOR xer = 0 TO 30
IF (map(xer, yer) = 4) THEN
CIRCLE ((xer * 10) + 5, (yer * 10) + 5), 2, INT(RND * 256)
END IF
IF (map(xer, yer) = 0) THEN
der$ = "Y"
IF (POINT((xer * 10) + 5, (yer * 10) + 5) <> 1) THEN
PSET ((xer * 10) + 5, (yer * 10) + 5), 1
END IF
END IF
NEXT xer
NEXT yer

'IF (map(INT(x(1) / 10), INT(y(1) / 10)) = 0 OR map(INT(x(1) / 10), INT((y(1) + 10) / 10)) = 0) THEN
'map(INT(x(1) / 10), INT(y(1) / 10)) = -1
'ELSEIF (map(INT(x(1) / 10), INT(y(1) / 10)) = 4 OR map(INT(x(1) / 10), INT((y(1) + 10) / 10)) = 0) THEN
'map(INT(x(1) / 10), INT(y(1) / 10)) = -1
'st$ = "Y"
'st = 60
'END IF

IF (st > 0) THEN
LOCATE 1, 39: PRINT CHR$(2)
LOCATE 2, 37: PRINT INT(st)
ELSE
LOCATE 1, 39: PRINT CHR$(1)
LOCATE 2, 37: PRINT INT(st); " "
END IF

LOCATE 4, 36: PRINT SCORE

IF (st > 0) THEN
st = st - .03
ELSE
st = 0
st$ = "N"
END IF

NEXT i

IF (der$ = "N") THEN Key$ = "q"

FOR i = 2 TO mi
IF (x(1) + 5 > x(i) AND x(1) < x(i) + 10) THEN
IF (y(1) + 5 > y(i) AND y(1) < y(i) + 10) THEN
IF (st = 0) THEN
Key$ = "q"
ELSEIF (st > 0) THEN
SCORE = SCORE + 10
FOR yer = 0 TO 19
FOR xer = 0 TO 30
d = map(xer, yer)
IF (d = 2) THEN
x(i) = (xer * 10) - 10
y(i) = (yer * 10)
END IF
NEXT xer
NEXT yer
END IF
END IF
END IF
NEXT i

LOOP UNTIL Key$ = "q"

IF (der$ <> "N") THEN
FOR sou = 3000 TO 1000 STEP -25
SOUND sou, .4
NEXT sou
END IF

Another example:

Code:
DIM starx(1000)
DIM stary(1000)
DIM starz(1000)
DIM starc(1000)

DO
Key$ = INKEY$
LOCATE 1, 1: PRINT "Press the up key you want for this pong game."

upk$ = Key$
LOOP UNTIL Key$ <> ""

DO
Key$ = INKEY$
LOCATE 1, 1: PRINT "Press the down key you want for this pong game."

dnk$ = Key$
LOOP UNTIL Key$ <> ""

SCREEN 13

speed = 1

starnum = 50

bxs = 1.5
bys = 1

bx = 160
by = 100

x = 5
y = 100

xs = 0
ys = 0

dert(1) = 0
dert(2) = 5
dert(3) = 10

pc = 2

size = 45

FOR th = 1 TO starnum
starx(th) = (INT(RND * 320))
stary(th) = (INT(RND * 200))
starz(th) = (RND * 1)
starc(th) = (INT(RND * 5)) + 25
NEXT th

DO
Key$ = INKEY$

'51  56

FOR th = 1 TO starnum
FOR der = 1 TO (starz(th) * 4) + 1
CIRCLE (rix + (starx(th) * (starz(th) - 0)), riy + (stary(th) * (starz(th) - 0))), der, 0
NEXT der
riy2 = 100 - ((starz(th) - .02) * 100)
rix2 = 160 - ((starz(th) - .02) * 160)
riy = 100 - (starz(th) * 100)
rix = 160 - (starz(th) * 160)
olsx = starx(th)
olsy = stary(th)
IF (starz(th) < 1) THEN
starz(th) = starz(th) + (speed / 100000)
ELSE
FOR dere = 0 TO 2
FOR der = 1 TO 5
CIRCLE (rix + (starx(th) * starz(th)), riy + (stary(th) * starz(th))), der, 0
NEXT der
NEXT dere
starz(th) = 0
starx(th) = (INT(RND * 320))
stary(th) = (INT(RND * 200))
END IF
FOR der = (starz(th) * 4) TO (starz(th) * 4) + 1
CIRCLE (rix + (starx(th) * starz(th)), riy + (stary(th) * starz(th))), der, 0
NEXT der
FOR der = 1 TO (starz(th) * 4) + 2
CIRCLE (rix2 + (starx(th) * (starz(th) - .02)), riy2 + (stary(th) * (starz(th) - .02))), der, 0
NEXT der
FOR der = 1 TO (starz(th) * 4)
CIRCLE (rix + (starx(th) * starz(th)), riy + (stary(th) * starz(th))), der, starc(th)
NEXT der
NEXT th


LOCATE 1, 1: PRINT INT(speed); "<--speed."

IF (Key$ = upk$) THEN
ys = ys - .5
ELSEIF (Key$ = dnk$) THEN
ys = ys + .5
END IF

oly = y
olx = x

x = x + xs
y = y + ys

IF (ys > 0) THEN
ys = ys - .05
ELSEIF (ys < 0) THEN
ys = ys + .05
END IF

IF (y > 200 - (size + 7)) THEN
ys = 20 - 20 - ys / 2
y = 200 - (size + 7)
ELSEIF (y < 7) THEN
ys = 0 - ys / 2
y = 7
END IF

'********************************************************>**>*>*>>>>>

IF (bx >= 160) THEN
IF (bxs > 0) THEN
bxs = bxs - .01
ELSEIF (bxs <= 0) THEN
bxs = bxs - .0167
END IF
ELSEIF (bx <= 25 AND bx > 23) THEN
IF (by >= (y - 10) AND (y + size + 10) >= by) THEN
bxs = 20 - 20 - bxs
IF (bxs > 1.7) THEN
bxs = 1.7
END IF
IF (bxs < 1) THEN
bxs = 1
END IF
IF (bys < 3 AND bys > -3) THEN
bys = bys + (ys / 1.5)
ELSE
bys = bys / 2
END IF
END IF
ELSEIF (bx <= 23 AND bx >= 1) THEN
IF (by >= y AND by <= (y + size)) THEN
bxs = .75
IF (bys < 3 AND bys > -3) THEN
bys = ys
ELSE
bys = bys / 2
END IF
END IF
END IF

IF (by > 193) THEN
bys = 0 - bys
ELSEIF (by < 7) THEN
bys = 20 - 20 - bys
END IF

IF (by > 150) THEN
bys = bys - .13
ELSEIF (by < 50) THEN
bys = bys + .13
END IF

box = bx
boy = by

bx = bx + bxs
by = by + bys

FOR we = 0 TO 16
LINE ((olx + we), (oly - 8))-((olx + we), 8 + (oly + size)), 0
NEXT we

FOR lin = 1 TO 10
LINE ((x + 2 + lin), (y + 2))-((x + 2 + lin), y + (size - 5)), lin + 18
NEXT lin

FOR cir = 0 TO 7
IF (cir > 1) THEN
CIRCLE ((x + 7), y), cir, (27 - cir)
ELSE
CIRCLE ((x + 7), y), cir, 6
END IF
NEXT cir

FOR cir = 0 TO 7
IF (cir > 1) THEN
CIRCLE ((x + 7), (y + size)), cir, (27 - cir)
ELSE
CIRCLE ((x + 7), (y + size)), cir, 6
END IF
NEXT cir

IF (speed < 20) THEN
speed = speed + .03
ELSEIF (speed >= 120) THEN
speed = speed + .5
ELSEIF (speed >= 20) THEN
speed = speed + .1
END IF

'*********************************************************
FOR dw = 1 TO 12
CIRCLE (box, boy), dw, 0
NEXT dw

FOR dw = 1 TO 12 STEP 2
CIRCLE (bx, by), dw, (INT(RND * 3)) + 53
NEXT dw

CIRCLE (box, boy), try, 0

try = try + .5

CIRCLE (bx, by), try, (INT(RND * 16))

IF (try > 20) THEN
CIRCLE (bx, by), try, 0
try = 0
END IF

FOR dw = 1 TO 7
rt = (INT(RND * 3000))
IF (rt > 2500) THEN
ELSE
CIRCLE (bx, by), dw, 28 - dw
END IF
NEXT dw
'*********************************************************

IF (speed >= 3000) THEN
Key$ = "q"
CLS
FOR ty = 1 TO 320
FOR tyt = 1 TO 200
PSET (ty, tyt), (INT(RND * 256))
NEXT tyt
NEXT ty
PRINT "You won!"
DO
LOCATE 1, 1: PRINT "Press Q to end the game."
LOOP UNTIL INKEY$ = "q"
END IF

'Daaaaaaaaaaaaa BBBBBBBBBBOOOOOOOOOOOOOOOOOOOOSSSSSSSSSTTTTTTERRRRRRRRSSSSSS
FOR yo = 1 TO 3
old(yo) = dert(yo)
dert(yo) = dert(yo) + .32 + (speed / 5000)

CIRCLE (derx(yo), dery(yo)), old(yo), 0
CIRCLE (derx(yo), (dery(yo) + size)), old(yo), 0

CIRCLE (derx(yo), dery(yo)), dert(yo), (INT(RND * 16))
CIRCLE (derx(yo), (dery(yo) + size)), dert(yo), (INT(RND * 16))

IF (dert(yo) > 15) THEN
CIRCLE (derx(yo), dery(yo)), dert(yo), 0
CIRCLE (derx(yo), (dery(yo) + size)), dert(yo), 0
dert(yo) = 0
dery(yo) = y
derx(yo) = (x + 7)
END IF

NEXT yo

FOR dela = 1 TO 10 * (3000 - INT(speed))
PSET (1, 1), 1
NEXT dela

IF (bx < -7) THEN
Key$ = "q"
END IF

LOOP UNTIL Key$ = "q"


SO GET TO IT!!!

:rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: :rotfl: