forget it i fixed it:

[syntax="qbasic"]CLS

SCREEN 13 '16-31

RANDOMIZE TIMER

SLEEP 1

a = 25

x = 1: y = 1

DO

c = INT(RND * 2) + 1

IF c = 1 THEN a = a + 1

IF c = 2 THEN a = a - 1

IF a < 16 THEN a = 16

IF a > 31 THEN a = 31

IF y = 2 THEN GOTO 1

PSET (x, y), a

x = x + 1

IF x = 320 THEN y = y + 1

IF x = 320 THEN x = 1

LOOP

1

DO

IF x = 320 THEN y = y + 1

IF x = 320 THEN x = 1

b = POINT(x, y - 1)

a = (a + b) / 2

c = INT(RND * 2) + 1

IF c = 1 THEN a = a + 1

IF c = 2 THEN a = a - 1

IF a < 16 THEN a = 16

IF a > 31 THEN a = 31

IF x < 4 THEN GOTO 2

r = POINT(x - 3, y)

t = POINT(x - 2, y - 1)

u = POINT(x - 2, y - 1)

2

PSET (x, y), a

IF x < 3 THEN GOTO 4

IF y <= 1 THEN GOTO 4

PSET (x - 2, y), (r + t + a) / 3

4

x = x + 1

LOOP UNTIL y = 200 AND x = 320

SLEEP

END

[/syntax]

here's what i was origanly(sp) going for:

[syntax="qbasic"]CLS

SCREEN 13 '16-31

RANDOMIZE TIMER

SLEEP 1

a = 25

x = 1: y = 1

DO

c = INT(RND * 2) + 1

IF c = 1 THEN a = a + 1

IF c = 2 THEN a = a - 1

IF a < 16 THEN a = 16

IF a > 31 THEN a = 31

IF y = 2 THEN GOTO 1

PSET (x, y), a

x = x + 1

IF x = 320 THEN y = y + 1

IF x = 320 THEN x = 1

LOOP

1

DO

IF x = 320 THEN y = y + 1

IF x = 320 THEN x = 1

b = POINT(x, y - 1)

a = (a + b) / 2

c = INT(RND * 2) + 1

IF c = 1 THEN a = a + 1

IF c = 2 THEN a = a - 1

IF a < 16 THEN a = 16

IF a > 31 THEN a = 31

IF x < 4 THEN GOTO 2

r = POINT(x - 3, y)

t = POINT(x - 2, y - 1)

u = POINT(x - 2, y - 1)

2

PSET (x, y), a

IF x < 3 THEN GOTO 4

IF y <= 1 THEN GOTO 4

PSET (x - 2, y), (r + t + a) / 3

4

x = x + 1

LOOP UNTIL y = 200 AND x = 320

SLEEP

END

[/syntax]

although it does tend to have a vertical ridge going on if you want to fix that