home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 1: Collection A / 17Bit_Collection_A.iso / files / 989.dms / 989.adf / FlowerGarden / Flower_Garden (.txt) < prev    next >
AmigaBASIC Source Code  |  1990-04-30  |  9KB  |  329 lines

  1.   'Flower Garden by Marianne Gillis
  2.   '                78 Tufnell Drive
  3.   '                Winnipeg, Canada
  4.   '                R2N 1J8
  5.   'Copyright 1988 
  6. ON BREAK GOSUB ender: BREAK ON
  7.    SCREEN 1,320,200,5,1: WINDOW 2,,,16,1
  8.    PALETTE 0,0.55,0.55,0.55    'grey
  9.    PALETTE 1,0.01,0.01,0.01    'transparent black 
  10.    PALETTE 2,1,1,1          'white
  11.    PALETTE 3,0.92,0.43,0.18    'orange
  12.    PALETTE 4,0,0,0.8         'sky blue
  13.    PALETTE 5,1,0.23,0.56      'violet
  14.    PALETTE 6,0,1,0         'lime
  15.    PALETTE 7,0.8,0,0         'red
  16.    PALETTE 8,0,0.42,0        'moss
  17.    PALETTE 9,0.32,0.38,0.92    'light blue
  18.    PALETTE 10,0.66,0.2,0.72    'purple 
  19.    PALETTE 11,0.93,0.96,0.37   'yellow
  20.    PALETTE 12,0.02,0.02,0.02   'black borders
  21.    PALETTE 13,0,0,0
  22.           x=20:y=20
  23. dx= 80   :dy=180
  24. ax=120   :ay=180
  25. tx=160   :ty=180
  26.    
  27. Border:
  28.    LINE (35,20)-(269,160),3,bf: LINE (35,20)-(269,160),12,b
  29.    LINE (39,24)-(265,156),8,bf: LINE (39,24)-(265,156),12,b
  30.  
  31. Brush:
  32.    COLOR 12,0
  33.    CIRCLE (286,134),4,12,3.1,6.28: LINE (290,134)-(290,128),12
  34.    LINE (282,134)-(282,128),12: LINE (290,128)-(282,128),12
  35.    LINE (285,128)-(285,131),12: LINE (288,128)-(288,131),12
  36.    LINE (285,138)-(285,143),12: LINE (287,138)-(287,143),12
  37.    LINE (285,143)-(287,143),12: PAINT (286,142),12,12
  38.    
  39. Smallpencil:   
  40.    LINE (276,98)-(296,98): LINE (273,100)-(276,98)
  41.    LINE (276,102)-(296,102): LINE (273,100)-(276,102)
  42.    LINE (296,98)-(296,102): LINE (295,98)-(295,102)
  43.    LINE (278,98)-(278,102): PSET (278,99),0:PSET (278,101),0
  44.    
  45. Bigpencil:
  46.    LINE (277,66)-(297,66): LINE (272,70)-(277,66)
  47.    LINE (277,74)-(297,74): LINE (272,70)-(277,74)
  48.    LINE (297,66)-(297,74): LINE (296,66)-(296,74)
  49.    LINE (279,66)-(279,74):PSET(279,68),0:PSET(279,70),0
  50.    PSET(279,72),0
  51.  
  52. Mower:
  53.    LINE (278,182)-(306,188),13,b
  54.    LINE (286,176)-(298,182),13,b
  55.    CIRCLE (282,187),4,12 : PAINT (282,187),0,12
  56.    CIRCLE (302,187),4,12 : PAINT (302,187),0,12
  57.    CIRCLE (282,187),1,12
  58.    CIRCLE (302,187),1,12
  59.    LINE (291,185)-(251,169),12
  60.    LINE (293,185)-(253,169),12
  61.  
  62. Makeobjects:
  63.    OPEN "Bee.spr" FOR INPUT AS 1
  64.    OBJECT.SHAPE 1, INPUT$(LOF(1),1)
  65.    CLOSE 1
  66.    OBJECT.X 1,280: OBJECT.Y 1,10
  67.    OBJECT.ON 1
  68.           
  69. Headings:
  70.    LOCATE 2,12: PRINT "FLOWER GARDEN"
  71.    
  72. Placecircles:
  73.   WAVE 0,SIN
  74.    SOUND 329.63,3,150,0 
  75.    SOUND 349.23,3,150,0 
  76.    SOUND 392,6,200,0 
  77.    SOUND 261.63,6,150,0 
  78.    SOUND 293.66,6,200,0 
  79.    SOUND 349.23,6,150,0 
  80.    SOUND 329.63,9,200,0 
  81.    SOUND 293.66,3,150,0 
  82.    SOUND 261.63,12,180,0  
  83.    FOR p = 2 TO 12
  84.      CIRCLE (x,y),6,12: PAINT (x,y),p,12
  85.      y=y+15
  86.    NEXT p
  87.    p=7 : d=0  
  88.    PAINT (294,100),p,12
  89.    
  90. Masterbouquet:   
  91.       b=2 : RANDOMIZE TIMER
  92.    FOR n=1 TO 20 STEP 4
  93.     r=CINT(RND*4)
  94.     b=b+1: IF b=8 THEN b=9
  95.     IF b=12 THEN b=2
  96.     CIRCLE (200+n,173+r),2,13: PAINT (200+n,173+r),b,13
  97.     CIRCLE (200+n,173+r),2,12
  98.     LINE (200+n,173+r+2)-(200+n,173+r+10),12
  99.     r=CINT(RND*4) 
  100.     b=b+1: IF b=8 THEN b=9
  101.     IF b=12 THEN b=2
  102.     CIRCLE (220-n,173-r),2,13: PAINT (220-n,173-r),b,13
  103.     CIRCLE (220-n,173-r),2,12    
  104.     LINE (220-n,173-r+2)-(220-n,173-r+10),12
  105.    NEXT n
  106.     
  107. MasterDaisy:
  108.    CIRCLE (dx,dy),4,12
  109.    CIRCLE (dx,dy-6),4,12: CIRCLE (dx,dy+6),4,12
  110.    CIRCLE (dx-7,dy),4,12: CIRCLE (dx+7,dy),4,12
  111.    CIRCLE (dx-6,dy-4),4,12: CIRCLE (dx+6,dy-4),4,12
  112.    CIRCLE (dx-6,dy+4),4,12: CIRCLE (dx+6,dy+4),4,12
  113.    CIRCLE (dx,dy),6,0
  114.    PAINT (80,180),11,12: PAINT (80,186),7,12
  115.    
  116. MasterAster:
  117.    LINE (ax-10,ay)-(ax+10,ay),12
  118.    LINE (ax,ay+8)-(ax,ay-8),12
  119.    LINE (ax-7,ay+6)-(ax+7,ay-6),12: LINE (ax-7,ay-6)-(ax+7,ay+6),12
  120.    LINE (ax-9,ay-3)-(ax+9,ay+3),12: LINE (ax+9,ay-3)-(ax-9,ay+3),12
  121.    LINE (ax-4,ay+7)-(ax+4,ay-7),12: LINE (ax+4,ay+7)-(ax-4,ay-7),12
  122.    CIRCLE (ax,ay),4,1
  123.     PAINT (ax,ay),0,1
  124.     CIRCLE (ax,ay),4,12
  125.     PAINT (ax,ay),11,12
  126.       
  127. MasterTulip:
  128.    CIRCLE (tx,ty),6,12,3.1,6.28
  129.    LINE (tx-7,ty)-(tx-8,ty-10),12: LINE (tx+7,ty)-(tx+8,ty-10),12
  130.    LINE (tx-4,ty-6)-(tx-8,ty-10),12: LINE (tx-4,ty-6)-(tx,ty-10),12
  131.    LINE (tx+4,ty-6)-(tx+8,ty-10),12: LINE (tx+4,ty-6)-(tx,ty-10),12
  132.    PAINT (160,180),7,12
  133.    
  134. Flowers:
  135.     IF ABS(x1-120)<20 THEN GOSUB Aster
  136.     IF ABS(x1-160)<20 THEN GOSUB Tulip
  137.     IF ABS(x1- 80)<20 THEN GOSUB Daisy
  138.     IF ABS(x1-210)<25 THEN GOSUB Bouquet
  139.     x1=50:y1=100      'reset
  140.      
  141. Smalldraw:
  142.    IF d=1 GOTO Bigdraw
  143.    IF p = 12 THEN p=1
  144.    PAINT (294,70),0,12 
  145.    PAINT (294,100),p,12 
  146.    IF p = 1 THEN p=12
  147.    WHILE MOUSE(0)=0: WEND
  148.    WHILE MOUSE(0)<0
  149.    x1=MOUSE(3): y1=MOUSE(4)  
  150.    WHILE MOUSE(0)<0
  151.    x2=MOUSE(5)-1: y2=MOUSE(6)  
  152.    IF (ABS(MOUSE(1)-20)<6) GOTO Pickcolor
  153.    IF (ABS(x1-153)>112) OR (ABS(x2-152)>112) GOTO Checkpoint
  154.    IF (ABS(y1- 90)> 65) OR (ABS(y2- 90)> 65) GOTO Checkpoint
  155.    LINE (x1,y1)-(x2,y2),p: x1=x2: y1=y2
  156.    WEND: WEND
  157.    
  158. Bigdraw:
  159.    IF d=0 GOTO Smalldraw
  160.    IF p=12 THEN p=1
  161.    PAINT (294,100),0,12
  162.    PAINT (294,70),p,12 
  163.    IF p=1 THEN p=12   
  164.    WHILE MOUSE(0)=0: WEND
  165.    WHILE MOUSE(0)<0
  166.    x1=MOUSE(3): y1=MOUSE(4)   
  167.    WHILE MOUSE(0)<0
  168.    x2=MOUSE(5): y2=MOUSE(6)    
  169.    IF (ABS(MOUSE(1)-20)<6) GOTO Pickcolor
  170.    IF (ABS(x1-153)>111) OR (ABS(x2-153)>111) GOTO Checkpoint
  171.    IF (ABS(y1- 90)> 65) OR (ABS(y2- 90)> 64) GOTO Checkpoint
  172.   LINE (x1-1,y1)-(x2-1,y2),p 
  173.   LINE (x1,y1)-(x2,y2),p
  174.   LINE (x1,y1-1)-(x2,y2-1),p
  175.   LINE (x1,y1+1)-(x2,y2+1),p 
  176.    x1=x2: y1=y2
  177.    WEND: WEND
  178.    
  179.    
  180. Checkpoint:
  181.    IF p=12 THEN p=1
  182.    IF (ABS(y1-180)<10 AND ABS(x1-285)>20) GOTO Flowers
  183.    IF (ABS(x1-285)<20 AND ABS(y1-40)<15)GOTO Movebee
  184.    IF  ABS(x1-286)<15 THEN
  185.     IF ABS(y1-135)<25 THEN PAINT(286,135),p,12:SOUND 3000,0.1,250,0:GOTO Colour  
  186.     IF ABS(y1-100)<20 THEN d=0:GOTO Smalldraw
  187.     IF ABS(y1-70)<20 THEN d=1:GOTO Bigdraw
  188.     IF ABS(y1-180)<20 THEN GOSUB UseMower
  189.    END IF
  190.     GOTO Bigdraw
  191.    
  192. Colour:
  193.    WHILE MOUSE(0)>-1: WEND
  194.    x1=MOUSE(3):y1=MOUSE(4)
  195.    IF (ABS(x1-152)>112)  GOTO Bigdraw
  196.    IF (ABS(y1- 90)> 65)  GOTO Bigdraw
  197.    PAINT (x1,y1),p,12
  198.    PAINT (286,135),0,12    'renewcolor 
  199.    GOTO Bigdraw
  200.             
  201. Pickcolor:
  202.    SOUND 3000,0.1,250,0
  203.    p=CINT((y2-5)/15 +1): IF p=12 THEN p=1
  204.    PAINT (80,186),p,12: PAINT (160,180),p,12
  205.    GOTO Bigdraw
  206.  
  207. Movebee:
  208.    WHILE MOUSE(0)=0:WEND
  209.    LOCATE 5,36: PRINT"BEE"
  210.    WHILE MOUSE(0)<0
  211.    x1=MOUSE(1): y1=MOUSE(2)
  212.    OBJECT.OFF 1
  213.    OBJECT.X 1,x1-5:OBJECT.Y 1,(y1-40):OBJECT.ON 1
  214.    GOTO Movebee
  215.    WEND
  216.    GOTO Bigdraw      
  217.  
  218. Aster:
  219.    SOUND 3000,0.1,250,0
  220.    ax=(RND*194)+55:ay=(RND*60)+80
  221.    LINE (ax-10,ay)-(ax+10,ay),p
  222.    LINE (ax,ay+8)-(ax,ay-8),p
  223.    LINE (ax-7,ay+6)-(ax+7,ay-6),p: LINE (ax-7,ay-6)-(ax+7,ay+6),p
  224.    LINE (ax-9,ay-3)-(ax+9,ay+3),p: LINE (ax+9,ay-3)-(ax-9,ay+3),p
  225.    LINE (ax-4,ay+7)-(ax+4,ay-7),p: LINE (ax+4,ay+7)-(ax-4,ay-7),p
  226.    CIRCLE (ax,ay),4,1
  227.    PAINT (ax,ay),11,1
  228.    CIRCLE (ax,ay),4,p
  229.    RETURN
  230.  
  231. Tulip:
  232.    SOUND 3000,0.1,250,0
  233.    tx=(RND*194)+55:ty=(RND*60)+80
  234.    CIRCLE (tx,ty),6,13,3.1,6.28
  235.    LINE (tx-7,ty)-(tx-8,ty-10),13: LINE (tx+7,ty)-(tx+8,ty-10),13
  236.    LINE (tx-4,ty-6)-(tx-8,ty-10),13: LINE (tx-4,ty-6)-(tx,ty-10),13
  237.    LINE (tx+4,ty-6)-(tx+8,ty-10),13: LINE (tx+4,ty-6)-(tx,ty-10),13
  238.    PAINT (tx,ty+3),p,13
  239.    CIRCLE (tx,ty),6,12,3.1,6.28
  240.    LINE (tx-7,ty)-(tx-8,ty-10),12: LINE (tx+7,ty)-(tx+8,ty-10),12
  241.    LINE (tx-4,ty-6)-(tx-8,ty-10),12: LINE (tx-4,ty-6)-(tx,ty-10),12
  242.    LINE (tx+4,ty-6)-(tx+8,ty-10),12: LINE (tx+4,ty-6)-(tx,ty-10),12
  243.    PAINT (tx,ty+3),p,12
  244.    RETURN 
  245.     
  246. Daisy:
  247.    SOUND 3000,0.1,250,0
  248.    dx=(RND*194)+55:dy=(RND*60)+80
  249.    CIRCLE (dx,dy),4,13
  250.    CIRCLE (dx,dy-6),4,13: CIRCLE (dx,dy+6),4,13
  251.    CIRCLE (dx-7,dy),4,13: CIRCLE (dx+7,dy),4,13
  252.    CIRCLE (dx-6,dy-4),4,13: CIRCLE (dx+6,dy-4),4,13
  253.    CIRCLE (dx-6,dy+4),4,13: CIRCLE (dx+6,dy+4),4,13
  254.    CIRCLE (dx,dy),6,1
  255.    PAINT (dx,dy),11,13
  256.    PAINT (dx-5,dy),p,13
  257.    CIRCLE (dx,dy),4,12
  258.    CIRCLE (dx,dy-6),4,12: CIRCLE (dx,dy+6),4,12
  259.    CIRCLE (dx-7,dy),4,12: CIRCLE (dx+7,dy),4,12
  260.    CIRCLE (dx-6,dy-4),4,12: CIRCLE (dx+6,dy-4),4,12
  261.    CIRCLE (dx-6,dy+4),4,12: CIRCLE (dx+6,dy+4),4,12
  262.    RETURN
  263.       
  264. Bouquet:
  265.    startp = p
  266.    FOR p=2 TO 11
  267.    IF p = 8 THEN p = 9
  268.    GOSUB Aster
  269.    GOSUB Daisy
  270.    GOSUB Tulip
  271.    NEXT p
  272.    p=startp
  273.    RETURN
  274.  
  275. UseMower:
  276.    FOR k = 262 TO 40 STEP -3   '<------  
  277.       SOUND 250,0.3,200,0
  278.       SOUND 250,0.5,0.1,0
  279.       LINE (k,155)-(k+2,133),8,bf
  280.    NEXT k
  281.    
  282.    FOR m= 40 TO 262 STEP 3
  283.       SOUND 250,0.3,200,0
  284.       SOUND 250,0.5,0.1,0
  285.    
  286.       LINE (m,132)-(m+2,111),8,bf
  287.    NEXT m
  288.    
  289.    FOR n = 262 TO 40 STEP -3
  290.       SOUND 250,0.3,200,0
  291.       SOUND 250,0.5,0.1,0
  292.  
  293.       LINE (n,110)-(n+2,89),8,bf
  294.    NEXT n
  295.    
  296.    FOR t= 40 TO 262 STEP 3
  297.       SOUND 250,0.3,200,0
  298.       SOUND 250,0.5,0.1,0
  299.  
  300.     LINE (t,88)-(t+2,66),8,bf
  301.    NEXT t
  302.    
  303.    FOR s = 262 TO 40 STEP -3
  304.       SOUND 250,0.3,200,0
  305.       SOUND 250,0.5,0.1,0
  306.     
  307.     LINE (s,65)-(s+2,44),8,bf
  308.    NEXT s
  309.    
  310.    FOR q= 40 TO 262 STEP 3
  311.       SOUND 250,0.3,200,0
  312.       SOUND 250,0.5,0.1,0
  313.  
  314.     LINE (q,43)-(q+2,25),8,bf
  315.    NEXT q
  316.  
  317.    x1=50:y1=100    'reset
  318.     RETURN   
  319.  
  320. Loop:
  321.   GOTO Loop     
  322.  
  323. ender:
  324. CLEAR, 25000
  325. WINDOW CLOSE 2
  326. SCREEN CLOSE 1
  327. SYSTEM
  328. END
  329.