08-16-2005, 06:40 PM
Guess what, I found painter.bas:
I dunno how well it works.. I might have tampered with it after I made painter.exe..
Code:
DEFINT A-Z
'$DYNAMIC
TYPE dottype
x AS SINGLE
y AS SINGLE
vx AS SINGLE
vy AS SINGLE
age AS SINGLE
sex AS INTEGER
str AS INTEGER
dxt AS INTEGER
vit AS INTEGER
END TYPE
DIM Dot(2048) AS dottype
CLS : SCREEN 13
RANDOMIZE TIMER
numDots = 127
FOR a = 0 TO numDots
Dot(a).x = 320 * RND
Dot(a).y = 200 * RND
Dot(a).vx = 0
Dot(a).vy = 0
Dot(a).age = 5 * RND
Dot(a).sex = CINT(RND)
Dot(a).str = 3 * RND
Dot(a).dxt = 3 * RND
Dot(a).vit = 3 * RND
NEXT
DO
LINE (20, 20)-(300, 180), 16, B
FOR a = 0 TO numDots
med1! = (Dot(a).str + Dot(a).dxt * 4 + Dot(a).vit * 16) / 10
Dot(a).vx = 0
Dot(a).vx = 0
FOR B = 0 TO numDots
IF B <> a THEN
med2! = (Dot(B).str + Dot(B).dxt * 4 + Dot(B).vit * 16) / 10
IF CINT(med1!) = CINT(med2!) THEN
IF Dot(a).x < Dot(B).x THEN Dot(a).vx = 1
IF Dot(a).x > Dot(B).x THEN Dot(a).vx = -1
IF Dot(a).y < Dot(B).y THEN Dot(a).vy = 1
IF Dot(a).y > Dot(B).y THEN Dot(a).vy = -1
'IF CINT(5 * RND) = 1 THEN EXIT FOR
END IF
END IF
NEXT
xb = 0: yb = 0
IF POINT(Dot(a).x + Dot(a).vx, Dot(a).y) = 0 THEN
PSET (Dot(a).x, Dot(a).y), 0
Dot(a).x = Dot(a).x + Dot(a).vx
ELSE
xb = 1
END IF
IF POINT(Dot(a).x, Dot(a).y + Dot(a).vy) = 0 THEN
PSET (Dot(a).x, Dot(a).y), 0
Dot(a).y = Dot(a).y + Dot(a).vy
ELSE
yb = 1
END IF
IF xb + yb = 2 THEN
IF POINT(Dot(a).x, Dot(a).y) <> 0 THEN
FOR f = 1 TO 200
l4 = POINT(Dot(a).x - f, Dot(a).y)
l7 = POINT(Dot(a).x - f, Dot(a).y - f)
l8 = POINT(Dot(a).x, Dot(a).y - f)
l9 = POINT(Dot(a).x + f, Dot(a).y - f)
l6 = POINT(Dot(a).x + f, Dot(a).y)
l3 = POINT(Dot(a).x + f, Dot(a).y + f)
l2 = POINT(Dot(a).x, Dot(a).y + f)
l1 = POINT(Dot(a).x - f, Dot(a).y + f)
dr = INT(8 * RND)
IF dr = 0 THEN
IF l4 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y: EXIT FOR
IF l7 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l8 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l9 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l6 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y: EXIT FOR
IF l3 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l2 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l1 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y + f: EXIT FOR
ELSEIF dr = 1 THEN
IF l7 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l8 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l9 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l6 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y: EXIT FOR
IF l3 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l2 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l1 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l4 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y: EXIT FOR
ELSEIF dr = 2 THEN
IF l8 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l9 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l6 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y: EXIT FOR
IF l3 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l2 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l1 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l4 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y: EXIT FOR
IF l7 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y - f: EXIT FOR
ELSEIF dr = 3 THEN
IF l9 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l6 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y: EXIT FOR
IF l3 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l2 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l1 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l4 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y: EXIT FOR
IF l7 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l8 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y - f: EXIT FOR
ELSEIF dr = 4 THEN
IF l6 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y: EXIT FOR
IF l3 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l2 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l1 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l4 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y: EXIT FOR
IF l7 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l8 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l9 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y - f: EXIT FOR
ELSEIF dr = 5 THEN
IF l3 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l2 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l1 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l4 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y: EXIT FOR
IF l7 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l8 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l9 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l6 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y: EXIT FOR
ELSEIF dr = 6 THEN
IF l2 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l1 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l4 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y: EXIT FOR
IF l7 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l8 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l9 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l6 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y: EXIT FOR
IF l3 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y + f: EXIT FOR
ELSEIF dr = 7 THEN
IF l1 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l4 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y: EXIT FOR
IF l7 = 0 THEN Dot(a).x = Dot(a).x - f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l8 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l9 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y - f: EXIT FOR
IF l6 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y: EXIT FOR
IF l3 = 0 THEN Dot(a).x = Dot(a).x + f: Dot(a).y = Dot(a).y + f: EXIT FOR
IF l2 = 0 THEN Dot(a).x = Dot(a).x: Dot(a).y = Dot(a).y + f: EXIT FOR
END IF
NEXT
ELSE
'numDots = numDots + 1
END IF
END IF
IF Dot(a).x <= 20 OR Dot(a).x >= 300 THEN Dot(a).vx = 0: outx = -1 ELSE outx = 0
IF Dot(a).y <= 20 OR Dot(a).y >= 180 THEN Dot(a).vy = 0: outy = -1 ELSE outy = 0
IF Dot(a).x < 20 THEN Dot(a).x = 20
IF Dot(a).x > 300 THEN Dot(a).x = 300
IF Dot(a).y < 20 THEN Dot(a).y = 20
IF Dot(a).y > 180 THEN Dot(a).y = 180
IF outx OR outy THEN dout = dout + 1
PSET (Dot(a).x, Dot(a).y), Dot(a).str + Dot(a).dxt * 4 + Dot(a).vit * 16
NEXT
k$ = INKEY$
IF k$ = "n" THEN CLS
IF dout >= numDots / 1.05 THEN dnew = dnew + 1
IF dnew = 3 THEN
LINE (20, 20)-(300, 180), 16, B
t! = TIMER + 3: DO: k$ = INKEY$: LOOP UNTIL TIMER >= t! OR k$ <> ""
CLS : dnew = 0
END IF
dout = 0
LOOP UNTIL k$ = CHR$(27)