home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 26 / CD_ASCQ_26_1295.iso / vrac / begin_jb.zip / BUBBATH.BAS < prev    next >
BASIC Source File  |  1995-07-21  |  2KB  |  58 lines

  1. CLS
  2. INPUT "How many bubbles"; a
  3. a = a - 1
  4. IF a < 0 THEN a = 1
  5. INPUT "Do you want the soap or oilly faster(s or o)"; i$
  6. IF i$ = "s" OR i$ = "S" THEN sspeed = 10: ospeed = 5:  ELSE sspeed = 5: ospeed = 10
  7. INPUT "Colour of water at start"; bcol
  8. INPUT "Colour of bubbles"; bubcol
  9. IF bubcol < 1 OR bcol < 1 OR bubcol > 15 OR bcol > 15 THEN RUN
  10. INPUT "Number of ollies"; oilnum
  11. INPUT "Speed of bubbles(1-slow 20-fast)"; spbub
  12. IF spbub < 1 THEN RUN
  13. IF oilnum > 100 THEN RUN
  14. CLS
  15. SCREEN 7
  16. 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)
  17. COLOR 1, 15
  18. PRINT "Compiling..."
  19. soapy = 0: oily = 0
  20. tile$ = CHR$(&H84)
  21. p = a
  22. FOR f = 0 TO (a * 2) + 1
  23. x(f) = RND * 320: y(f) = RND * 200
  24. n(f) = RND * 30: bubblecol(f) = bubcol
  25. IF f > a + 1 THEN y(f) = 190
  26. NEXT f
  27. FOR b = 1 TO oilnum: oilc(b) = RND * 13 + 1: oily(b) = RND * 200: oilx(b) = RND * 320: NEXT
  28. FOR b = 1 TO 32: s(b) = RND * 30: NEXT
  29. CLS
  30.  
  31. DO
  32. FOR f = 1 TO oilnum
  33. CIRCLE (oilx(f), oily(f)), 5, 15: PAINT (oilx(f), oily(f)), 15
  34. oily(f) = oily(f) + ospeed: CIRCLE (oilx(f), oily(f)), 5, oilc(f): PAINT (oilx(f), oily(f)), oilc(f)
  35. IF oily(f) > 190 THEN oily(f) = 0: oilx(f) = RND * 320: bcol = oilc(f): oilc(f) = RND * 13 + 1
  36. FOR f = 1 TO p
  37. FOR b = 1 TO oilnum
  38. 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)
  39. NEXT
  40. NEXT
  41. NEXT
  42. FOR f = 0 TO p
  43. IF y(f) < (190 - (n(f) / 2)) THEN CIRCLE (x(f), y(f) + spbub), n(f), 15
  44. CIRCLE (x(f), y(f)), n(f), bubblecol(f)
  45. 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
  46. y(f) = y(f) - spbub
  47. FOR b = 1 TO 32: CIRCLE (b * 10, 190), s(b), bcol: NEXT
  48. LINE (0, 190)-(320, 200), bcol, BF
  49. IF soapy = 0 AND x(f) > 100 AND x(f) < 130 THEN soapx = RND * 320
  50. NEXT f
  51. 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
  52. IF soapy > 190 THEN soapy = 0: soapx = 0: bcol = 1: CLS
  53. FOR f = 1 TO p
  54. 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
  55. NEXT
  56. LOOP UNTIL INKEY$ <> ""
  57.  
  58.