home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 26
/
CD_ASCQ_26_1295.iso
/
vrac
/
begin_jb.zip
/
BUBBATH.BAS
< prev
next >
Wrap
BASIC Source File
|
1995-07-21
|
2KB
|
58 lines
CLS
INPUT "How many bubbles"; a
a = a - 1
IF a < 0 THEN a = 1
INPUT "Do you want the soap or oilly faster(s or o)"; i$
IF i$ = "s" OR i$ = "S" THEN sspeed = 10: ospeed = 5: ELSE sspeed = 5: ospeed = 10
INPUT "Colour of water at start"; bcol
INPUT "Colour of bubbles"; bubcol
IF bubcol < 1 OR bcol < 1 OR bubcol > 15 OR bcol > 15 THEN RUN
INPUT "Number of ollies"; oilnum
INPUT "Speed of bubbles(1-slow 20-fast)"; spbub
IF spbub < 1 THEN RUN
IF oilnum > 100 THEN RUN
CLS
SCREEN 7
DIM x(a * 2 + 1): DIM bubblecol(a * 2 + 1): DIM y(a * 2 + 1): DIM n(a * 2 + 1): DIM s(32): DIM oilc(oilnum): DIM oily(oilnum): DIM oilx(oilnum)
COLOR 1, 15
PRINT "Compiling..."
soapy = 0: oily = 0
tile$ = CHR$(&H84)
p = a
FOR f = 0 TO (a * 2) + 1
x(f) = RND * 320: y(f) = RND * 200
n(f) = RND * 30: bubblecol(f) = bubcol
IF f > a + 1 THEN y(f) = 190
NEXT f
FOR b = 1 TO oilnum: oilc(b) = RND * 13 + 1: oily(b) = RND * 200: oilx(b) = RND * 320: NEXT
FOR b = 1 TO 32: s(b) = RND * 30: NEXT
CLS
DO
FOR f = 1 TO oilnum
CIRCLE (oilx(f), oily(f)), 5, 15: PAINT (oilx(f), oily(f)), 15
oily(f) = oily(f) + ospeed: CIRCLE (oilx(f), oily(f)), 5, oilc(f): PAINT (oilx(f), oily(f)), oilc(f)
IF oily(f) > 190 THEN oily(f) = 0: oilx(f) = RND * 320: bcol = oilc(f): oilc(f) = RND * 13 + 1
FOR f = 1 TO p
FOR b = 1 TO oilnum
IF oily(b) + 10 < y(f) + 5 AND oily(b) > y(f) - 5 AND oilx + 10 < x(f) + 5 AND oilx + 10 > x(f) - 5 THEN CIRCLE (x(f), y(f)), 5, 15: bubblecol(f) = oilc(f)
NEXT
NEXT
NEXT
FOR f = 0 TO p
IF y(f) < (190 - (n(f) / 2)) THEN CIRCLE (x(f), y(f) + spbub), n(f), 15
CIRCLE (x(f), y(f)), n(f), bubblecol(f)
IF y(f) < 0 THEN CIRCLE (x(f), y(f)), n(f), 15: y(f) = 200: x(f) = RND * 320: n(f) = RND * 30: bubblecol(f) = bcol: IF p < (a * 2) + 1 THEN p = p + 1
y(f) = y(f) - spbub
FOR b = 1 TO 32: CIRCLE (b * 10, 190), s(b), bcol: NEXT
LINE (0, 190)-(320, 200), bcol, BF
IF soapy = 0 AND x(f) > 100 AND x(f) < 130 THEN soapx = RND * 320
NEXT f
IF soapx > 0 THEN soapsx = soapx / 10: soapsy = soapy / 10: LINE (soapx, soapy)-(soapx + 20, soapy + 20), 15, BF: soapy = soapy + sspeed: LINE (soapx, soapy)-(soapx + 20, soapy + 20), 14, BF
IF soapy > 190 THEN soapy = 0: soapx = 0: bcol = 1: CLS
FOR f = 1 TO p
IF soapy + 10 < y(f) + n(f) AND soapy > y(f) - n(f) AND soapx + 10 < x(f) + n(f) AND soapx + 10 > x(f) - n(f) THEN CIRCLE (x(f), y(f)), n(f), 15: bubblecol(f) = 1
NEXT
LOOP UNTIL INKEY$ <> ""