qbasic/scrworms.bas

61 lines
1.5 KiB
QBasic

DECLARE FUNCTION around! (spot!)
CLS
SCREEN 12
RANDOMIZE TIMER
TYPE coor
x AS INTEGER
y AS INTEGER
END TYPE
DIM newspot(6) AS coor
FOR c = 1 TO 15
PALETTE c, c * 3
NEXT c
newspot(1).x = 200
newspot(1).y = 200
newspot(2).x = 200
newspot(2).y = 200
newspot(3).x = 200
newspot(3).y = 200
newspot(4).x = 200
newspot(4).y = 200
newspot(5).x = 200
newspot(5).y = 200
DO
i = i + 1
IF INKEY$ <> "" THEN SYSTEM
CIRCLE (newspot(1).x, newspot(1).y), 1, i MOD 15
CIRCLE (newspot(2).x, newspot(2).y), 1, i MOD 15
CIRCLE (newspot(3).x, newspot(3).y), 1, i MOD 15
CIRCLE (newspot(4).x, newspot(4).y), 1, i MOD 15
CIRCLE (newspot(5).x, newspot(5).y), 1, i MOD 15
oldspot = newspot(1).x
newspot(1).x = newspot(1).x + around(oldspot)
oldspot = newspot(1).y
newspot(1).y = newspot(1).y + around(oldspot)
oldspot = newspot(2).x
newspot(2).x = newspot(2).x + around(oldspot)
oldspot = newspot(2).y
newspot(2).y = newspot(2).y + around(oldspot)
oldspot = newspot(3).x
newspot(3).x = newspot(3).x + around(oldspot)
oldspot = newspot(3).y
newspot(3).y = newspot(3).y + around(oldspot)
oldspot = newspot(4).x
newspot(4).x = newspot(4).x + around(oldspot)
oldspot = newspot(4).y
newspot(4).y = newspot(4).y + around(oldspot)
oldspot = newspot(5).x
newspot(5).x = newspot(5).x + around(oldspot)
oldspot = newspot(5).y
newspot(5).y = newspot(5).y + around(oldspot)
LOOP
FUNCTION around (spot)
a = INT(RND * 3) - 1
IF spot < 100 THEN a = 200
IF spot > 300 THEN a = -200
around = a
END FUNCTION