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

  1. '                       Maggots
  2. '                       =======
  3. '                  By James Bielby
  4. DO
  5. CLS
  6. INPUT "Screen Mode(7/8/9)"; scrn
  7. INPUT "Number of maggots"; n
  8. INPUT "Maggot colour"; magcol
  9. INPUT "Trail colour"; tcol
  10. INPUT "Background colour"; bcol
  11. INPUT "2 or 1 body bits"; twone
  12. LOOP UNTIL n > 0 AND magcol >= 0 AND magcol <= 15 AND tcol >= 0 AND tcol <= 15 AND bcol >= 0 AND bcol <= 15 AND twone >= 1 AND twone <= 2
  13. SELECT CASE scrn
  14.         CASE 7
  15.                 SCREEN 7
  16.                 xmax = 320: ymax = 200: mov = 5: size = 3
  17.         CASE 8
  18.                 SCREEN 8
  19.                 xmax = 640: ymax = 200: mov = 5: size = 4
  20.         CASE ELSE
  21.                 SCREEN 9
  22.                 xmax = 640: ymax = 390: mov = 5: size = 5
  23. END SELECT
  24. CLS
  25. COLOR 15, bcol
  26. DIM x(n): DIM y(n)
  27. DIM dx(n): DIM dy(n)
  28. DIM oldx(n): DIM oldy(n)
  29. FOR d = 1 TO n
  30. dx(d) = (RND * mov * 2) - mov
  31. dy(d) = (RND * mov * 2) - mov
  32. x(d) = CINT(xmax / 2)
  33. y(d) = CINT(ymax / 2)
  34. NEXT d
  35. DO
  36. FOR v = 1 TO n
  37. CIRCLE (x(v), y(v)), size, tcol
  38. PAINT (x(v), y(v)), tcol
  39. IF twone = 2 THEN CIRCLE (oldx(v), oldy(v)), size, tcol
  40. IF twone = 2 THEN PAINT (oldx(v), oldy(v)), tcol
  41. IF x(v) < 0 THEN x(v) = xmax
  42. IF x(v) > xmax THEN x(v) = 0
  43. IF y(v) < 0 THEN y(v) = ymax
  44. IF y(v) > ymax THEN y(v) = 0
  45. oldx(v) = x(v)
  46. oldy(v) = y(v)
  47. x(v) = x(v) + dx(v)
  48. y(v) = y(v) + dy(v)
  49. dx(v) = (RND * mov * 2) - mov
  50. dy(v) = (RND * mov * 2) - mov
  51. IF twone = 2 THEN CIRCLE (oldx(v), oldy(v)), size, magcol
  52. IF twone = 2 THEN PAINT (oldx(v), oldy(v)), magcol
  53. CIRCLE (x(v), y(v)), size, magcol
  54. PAINT (x(v), y(v)), magcol
  55. NEXT
  56. LOOP UNTIL INKEY$ <> ""
  57.  
  58.