Home » Archimedes archive » Acorn User » AU 1997-05 B.adf » Regulars » StarInfo/clouds/Adcock/C4

StarInfo/clouds/Adcock/C4

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1997-05 B.adf » Regulars
Filename: StarInfo/clouds/Adcock/C4
Read OK:
File size: 0695 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM C4
   20REM Cartoon Cloud Challenge Clouds
   30REM
   40ON ERROR PRINTERL:REPORT:END
   50MODE 27:OFF
   60DIM X(21),Y(21)
   70DIM XP(100),YP(100),SP(100),SR(100),YS(100)
   80REPEAT
   90 P=0
  100 SYS 6,112,2
  110 SYS 6,113,1
  120 CLS
  130 REPEAT
  140  P+=1
  150  S=RND(250)
  160  R=RND(50+100)
  170  YS=RND(0.8)+0.2
  180  TIME=0:REPEAT:X=RND(1280):Y=RND(1024-S-R-50)+50+R+S:UNTIL POINT(X,Y)=0 OR TIME>1
  190  GCOL 1:CIRCLEFILL X,Y,S
  200  XP(P)=X
  210  YP(P)=Y
  220  SP(P)=S
  230  SR(P)=R
  240  YS(P)=YS
  250 UNTIL P=10
  260 SYS 6,112,1
  270 SYS 6,113,1
  280 CLS
  290 COLOUR 0,0,190,255
  300 COLOUR 1,0,0,0
  310 COLOUR 7,225,225,225
  320 COLOUR 2,0,200,0
  330 GCOL 2
  340 RECTANGLEFILL 0,0,1280,50
  350 GCOL 1
  360 LINE 0,50,1280,50
  370 FOR MON = 1 TO P
  380  :
  390  R=SR(MON)
  400  N=15
  410  S=SP(MON)
  420  XO=XP(MON)
  430  YO=YP(MON)
  440  XS=1
  450  YS=YS(MON)
  460  PROCCLOUD(S,R,N,XO,YO,XS,YS)
  470  :
  480 NEXT MON
  490 A=INKEY(100)
  500 :
  510UNTIL FALSE
  520:
  530END
  540DEF PROCROT(RX,RY,RD)
  550R=RAD(-RD)
  560NX=RX*COS(R)-RY*SIN(R)
  570NY=RX*SIN(R)+RY*COS(R)
  580ENDPROC
  590:
  600:
  610:
  620DEF PROCSEG(C,L_LESS,L_MIDDLE,L_MORE)
  630GCOL C*6+1
  640SC=(1-C)*(8/S)+1
  650LOCAL D2,D2
  660D1=SQR(((X(L_MIDDLE)-X(L_MORE))^2)+((Y(L_MIDDLE)-Y(L_MORE))^2))
  670D2=SQR(((X(L_MIDDLE)-X(L_LESS))^2)+((Y(L_MIDDLE)-Y(L_LESS))^2))
  680D1+=1
  690D2+=1
  700IF D1<D2 THEN
  710ELLIPSEFILL XO+X(L_MIDDLE)*XS,YO+Y(L_MIDDLE)*YS,((1-C)*(8/(XS*D2))+1)*XS*D2/2,((1-C)*(8/(YS*D2))+1)*YS*D2/2
  720ELSE
  730ELLIPSEFILL XO+X(L_MIDDLE)*XS,YO+Y(L_MIDDLE)*YS,((1-C)*(8/(XS*D2))+1)*XS*D2/2,((1-C)*(8/(YS*D2))+1)*YS*D2/2
  740ENDIF
  750:
  760IF C MOVE XO+XS*X(L_LESS),YO+YS*Y(L_LESS):MOVE XO+XS*X(L_MIDDLE),YO+YS*Y(L_MIDDLE):PLOT &55,XO,YO
  770ENDPROC
  780:
  790:
  800:
  810DEF PROCCLOUD(S,R,N,XO,YO,XS,YS)
  820X=S
  830Y=0
  840:
  850FOR L = 1 TO N
  860PROCROT(X+SGN(RND)*RND(25),Y,L*360/N)
  870X(L)=NX
  880Y(L)=NY
  890NEXT L
  900:
  910FOR C = 0 TO 1
  920FOR L = 2 TO N-1
  930PROCSEG(C,L-1,L,L+1)
  940NEXT L
  950PROCSEG(C,N,1,2)
  960PROCSEG(C,N-1,N,1)
  970NEXT C
  980ENDPROC

� C4
$� Cartoon Cloud Challenge Clouds
�
(� � �:�:�
2
� 27:�
<� X(21),Y(21)
F-� XP(100),YP(100),SP(100),SR(100),YS(100)
P�
Z P=0
d ș 6,112,2
n ș 6,113,1
x �
� �
�
  P+=1
�  S=�(250)
�  R=�(50+100)
�  YS=�(0.8)+0.2
�=  �=0:�:X=�(1280):Y=�(1024-S-R-50)+50+R+S:� �X,Y)=0 � �>1
�  � 1:ȏȐ X,Y,S
�
  XP(P)=X
�
  YP(P)=Y
�
  SP(P)=S
�
  SR(P)=R
�  YS(P)=YS
� � P=10
 ș 6,112,1
 ș 6,113,1
 �
" � 0,0,190,255
, � 1,0,0,0
6 � 7,225,225,225
@ � 2,0,200,0
J � 2
T ȓȐ 0,0,1280,50
^ � 1
h � 0,50,1280,50
r � MON = 1 � P
|  :
�  R=SR(MON)
�
  N=15
�  S=SP(MON)
�  XO=XP(MON)
�  YO=YP(MON)
�
  XS=1
�  YS=YS(MON)
�  �CLOUD(S,R,N,XO,YO,XS,YS)
�  :
�
 � MON
�
 A=�(100)
� :
�� �
:
�
� �ROT(RX,RY,RD)
&R=�(-RD)
0NX=RX*�(R)-RY*�(R)
:NY=RX*�(R)+RY*�(R)
D�
N:
X:
b:
l$� �SEG(C,L_LESS,L_MIDDLE,L_MORE)
v� C*6+1
�SC=(1-C)*(8/S)+1
�� D2,D2
�AD1=�(((X(L_MIDDLE)-X(L_MORE))^2)+((Y(L_MIDDLE)-Y(L_MORE))^2))
�AD2=�(((X(L_MIDDLE)-X(L_LESS))^2)+((Y(L_MIDDLE)-Y(L_LESS))^2))
�	D1+=1
�	D2+=1
�
� D1<D2 �
�hȝȐ XO+X(L_MIDDLE)*XS,YO+Y(L_MIDDLE)*YS,((1-C)*(8/(XS*D2))+1)*XS*D2/2,((1-C)*(8/(YS*D2))+1)*YS*D2/2
��
�hȝȐ XO+X(L_MIDDLE)*XS,YO+Y(L_MIDDLE)*YS,((1-C)*(8/(XS*D2))+1)*XS*D2/2,((1-C)*(8/(YS*D2))+1)*YS*D2/2
��
�:
�[� C � XO+XS*X(L_LESS),YO+YS*Y(L_LESS):� XO+XS*X(L_MIDDLE),YO+YS*Y(L_MIDDLE):� &55,XO,YO
�
:
:
 :
*� �CLOUD(S,R,N,XO,YO,XS,YS)
4X=S
>Y=0
H:
R� L = 1 � N
\ �ROT(X+�(�)*�(25),Y,L*360/N)
fX(L)=NX
pY(L)=NY
z� L
�:
�� C = 0 � 1
�� L = 2 � N-1
��SEG(C,L-1,L,L+1)
�� L
��SEG(C,N,1,2)
��SEG(C,N-1,N,1)
�� C
��
�
00000000  0d 00 0a 08 f4 20 43 34  0d 00 14 24 f4 20 43 61  |..... C4...$. Ca|
00000010  72 74 6f 6f 6e 20 43 6c  6f 75 64 20 43 68 61 6c  |rtoon Cloud Chal|
00000020  6c 65 6e 67 65 20 43 6c  6f 75 64 73 0d 00 1e 05  |lenge Clouds....|
00000030  f4 0d 00 28 0e ee 20 85  20 f1 9e 3a f6 3a e0 0d  |...(.. . ..:.:..|
00000040  00 32 0a eb 20 32 37 3a  87 0d 00 3c 11 de 20 58  |.2.. 27:...<.. X|
00000050  28 32 31 29 2c 59 28 32  31 29 0d 00 46 2d de 20  |(21),Y(21)..F-. |
00000060  58 50 28 31 30 30 29 2c  59 50 28 31 30 30 29 2c  |XP(100),YP(100),|
00000070  53 50 28 31 30 30 29 2c  53 52 28 31 30 30 29 2c  |SP(100),SR(100),|
00000080  59 53 28 31 30 30 29 0d  00 50 05 f5 0d 00 5a 08  |YS(100)..P....Z.|
00000090  20 50 3d 30 0d 00 64 0f  20 c8 99 20 36 2c 31 31  | P=0..d. .. 6,11|
000000a0  32 2c 32 0d 00 6e 0f 20  c8 99 20 36 2c 31 31 33  |2,2..n. .. 6,113|
000000b0  2c 31 0d 00 78 06 20 db  0d 00 82 06 20 f5 0d 00  |,1..x. ..... ...|
000000c0  8c 0a 20 20 50 2b 3d 31  0d 00 96 0e 20 20 53 3d  |..  P+=1....  S=|
000000d0  b3 28 32 35 30 29 0d 00  a0 11 20 20 52 3d b3 28  |.(250)....  R=.(|
000000e0  35 30 2b 31 30 30 29 0d  00 aa 13 20 20 59 53 3d  |50+100)....  YS=|
000000f0  b3 28 30 2e 38 29 2b 30  2e 32 0d 00 b4 3d 20 20  |.(0.8)+0.2...=  |
00000100  d1 3d 30 3a f5 3a 58 3d  b3 28 31 32 38 30 29 3a  |.=0:.:X=.(1280):|
00000110  59 3d b3 28 31 30 32 34  2d 53 2d 52 2d 35 30 29  |Y=.(1024-S-R-50)|
00000120  2b 35 30 2b 52 2b 53 3a  fd 20 b0 58 2c 59 29 3d  |+50+R+S:. .X,Y)=|
00000130  30 20 84 20 91 3e 31 0d  00 be 14 20 20 e6 20 31  |0 . .>1....  . 1|
00000140  3a c8 8f c8 90 20 58 2c  59 2c 53 0d 00 c8 0d 20  |:.... X,Y,S.... |
00000150  20 58 50 28 50 29 3d 58  0d 00 d2 0d 20 20 59 50  | XP(P)=X....  YP|
00000160  28 50 29 3d 59 0d 00 dc  0d 20 20 53 50 28 50 29  |(P)=Y....  SP(P)|
00000170  3d 53 0d 00 e6 0d 20 20  53 52 28 50 29 3d 52 0d  |=S....  SR(P)=R.|
00000180  00 f0 0e 20 20 59 53 28  50 29 3d 59 53 0d 00 fa  |...  YS(P)=YS...|
00000190  0b 20 fd 20 50 3d 31 30  0d 01 04 0f 20 c8 99 20  |. . P=10.... .. |
000001a0  36 2c 31 31 32 2c 31 0d  01 0e 0f 20 c8 99 20 36  |6,112,1.... .. 6|
000001b0  2c 31 31 33 2c 31 0d 01  18 06 20 db 0d 01 22 12  |,113,1.... ...".|
000001c0  20 fb 20 30 2c 30 2c 31  39 30 2c 32 35 35 0d 01  | . 0,0,190,255..|
000001d0  2c 0e 20 fb 20 31 2c 30  2c 30 2c 30 0d 01 36 14  |,. . 1,0,0,0..6.|
000001e0  20 fb 20 37 2c 32 32 35  2c 32 32 35 2c 32 32 35  | . 7,225,225,225|
000001f0  0d 01 40 10 20 fb 20 32  2c 30 2c 32 30 30 2c 30  |..@. . 2,0,200,0|
00000200  0d 01 4a 08 20 e6 20 32  0d 01 54 15 20 c8 93 c8  |..J. . 2..T. ...|
00000210  90 20 30 2c 30 2c 31 32  38 30 2c 35 30 0d 01 5e  |. 0,0,1280,50..^|
00000220  08 20 e6 20 31 0d 01 68  13 20 86 20 30 2c 35 30  |. . 1..h. . 0,50|
00000230  2c 31 32 38 30 2c 35 30  0d 01 72 12 20 e3 20 4d  |,1280,50..r. . M|
00000240  4f 4e 20 3d 20 31 20 b8  20 50 0d 01 7c 07 20 20  |ON = 1 . P..|.  |
00000250  3a 0d 01 86 0f 20 20 52  3d 53 52 28 4d 4f 4e 29  |:....  R=SR(MON)|
00000260  0d 01 90 0a 20 20 4e 3d  31 35 0d 01 9a 0f 20 20  |....  N=15....  |
00000270  53 3d 53 50 28 4d 4f 4e  29 0d 01 a4 10 20 20 58  |S=SP(MON)....  X|
00000280  4f 3d 58 50 28 4d 4f 4e  29 0d 01 ae 10 20 20 59  |O=XP(MON)....  Y|
00000290  4f 3d 59 50 28 4d 4f 4e  29 0d 01 b8 0a 20 20 58  |O=YP(MON)....  X|
000002a0  53 3d 31 0d 01 c2 10 20  20 59 53 3d 59 53 28 4d  |S=1....  YS=YS(M|
000002b0  4f 4e 29 0d 01 cc 1f 20  20 f2 43 4c 4f 55 44 28  |ON)....  .CLOUD(|
000002c0  53 2c 52 2c 4e 2c 58 4f  2c 59 4f 2c 58 53 2c 59  |S,R,N,XO,YO,XS,Y|
000002d0  53 29 0d 01 d6 07 20 20  3a 0d 01 e0 0a 20 ed 20  |S)....  :.... . |
000002e0  4d 4f 4e 0d 01 ea 0d 20  41 3d a6 28 31 30 30 29  |MON.... A=.(100)|
000002f0  0d 01 f4 06 20 3a 0d 01  fe 07 fd 20 a3 0d 02 08  |.... :..... ....|
00000300  05 3a 0d 02 12 05 e0 0d  02 1c 14 dd 20 f2 52 4f  |.:.......... .RO|
00000310  54 28 52 58 2c 52 59 2c  52 44 29 0d 02 26 0c 52  |T(RX,RY,RD)..&.R|
00000320  3d b2 28 2d 52 44 29 0d  02 30 16 4e 58 3d 52 58  |=.(-RD)..0.NX=RX|
00000330  2a 9b 28 52 29 2d 52 59  2a b5 28 52 29 0d 02 3a  |*.(R)-RY*.(R)..:|
00000340  16 4e 59 3d 52 58 2a b5  28 52 29 2b 52 59 2a 9b  |.NY=RX*.(R)+RY*.|
00000350  28 52 29 0d 02 44 05 e1  0d 02 4e 05 3a 0d 02 58  |(R)..D....N.:..X|
00000360  05 3a 0d 02 62 05 3a 0d  02 6c 24 dd 20 f2 53 45  |.:..b.:..l$. .SE|
00000370  47 28 43 2c 4c 5f 4c 45  53 53 2c 4c 5f 4d 49 44  |G(C,L_LESS,L_MID|
00000380  44 4c 45 2c 4c 5f 4d 4f  52 45 29 0d 02 76 0b e6  |DLE,L_MORE)..v..|
00000390  20 43 2a 36 2b 31 0d 02  80 14 53 43 3d 28 31 2d  | C*6+1....SC=(1-|
000003a0  43 29 2a 28 38 2f 53 29  2b 31 0d 02 8a 0b ea 20  |C)*(8/S)+1..... |
000003b0  44 32 2c 44 32 0d 02 94  41 44 31 3d b6 28 28 28  |D2,D2...AD1=.(((|
000003c0  58 28 4c 5f 4d 49 44 44  4c 45 29 2d 58 28 4c 5f  |X(L_MIDDLE)-X(L_|
000003d0  4d 4f 52 45 29 29 5e 32  29 2b 28 28 59 28 4c 5f  |MORE))^2)+((Y(L_|
000003e0  4d 49 44 44 4c 45 29 2d  59 28 4c 5f 4d 4f 52 45  |MIDDLE)-Y(L_MORE|
000003f0  29 29 5e 32 29 29 0d 02  9e 41 44 32 3d b6 28 28  |))^2))...AD2=.((|
00000400  28 58 28 4c 5f 4d 49 44  44 4c 45 29 2d 58 28 4c  |(X(L_MIDDLE)-X(L|
00000410  5f 4c 45 53 53 29 29 5e  32 29 2b 28 28 59 28 4c  |_LESS))^2)+((Y(L|
00000420  5f 4d 49 44 44 4c 45 29  2d 59 28 4c 5f 4c 45 53  |_MIDDLE)-Y(L_LES|
00000430  53 29 29 5e 32 29 29 0d  02 a8 09 44 31 2b 3d 31  |S))^2))....D1+=1|
00000440  0d 02 b2 09 44 32 2b 3d  31 0d 02 bc 0d e7 20 44  |....D2+=1..... D|
00000450  31 3c 44 32 20 8c 0d 02  c6 68 c8 9d c8 90 20 58  |1<D2 ....h.... X|
00000460  4f 2b 58 28 4c 5f 4d 49  44 44 4c 45 29 2a 58 53  |O+X(L_MIDDLE)*XS|
00000470  2c 59 4f 2b 59 28 4c 5f  4d 49 44 44 4c 45 29 2a  |,YO+Y(L_MIDDLE)*|
00000480  59 53 2c 28 28 31 2d 43  29 2a 28 38 2f 28 58 53  |YS,((1-C)*(8/(XS|
00000490  2a 44 32 29 29 2b 31 29  2a 58 53 2a 44 32 2f 32  |*D2))+1)*XS*D2/2|
000004a0  2c 28 28 31 2d 43 29 2a  28 38 2f 28 59 53 2a 44  |,((1-C)*(8/(YS*D|
000004b0  32 29 29 2b 31 29 2a 59  53 2a 44 32 2f 32 0d 02  |2))+1)*YS*D2/2..|
000004c0  d0 05 cc 0d 02 da 68 c8  9d c8 90 20 58 4f 2b 58  |......h.... XO+X|
000004d0  28 4c 5f 4d 49 44 44 4c  45 29 2a 58 53 2c 59 4f  |(L_MIDDLE)*XS,YO|
000004e0  2b 59 28 4c 5f 4d 49 44  44 4c 45 29 2a 59 53 2c  |+Y(L_MIDDLE)*YS,|
000004f0  28 28 31 2d 43 29 2a 28  38 2f 28 58 53 2a 44 32  |((1-C)*(8/(XS*D2|
00000500  29 29 2b 31 29 2a 58 53  2a 44 32 2f 32 2c 28 28  |))+1)*XS*D2/2,((|
00000510  31 2d 43 29 2a 28 38 2f  28 59 53 2a 44 32 29 29  |1-C)*(8/(YS*D2))|
00000520  2b 31 29 2a 59 53 2a 44  32 2f 32 0d 02 e4 05 cd  |+1)*YS*D2/2.....|
00000530  0d 02 ee 05 3a 0d 02 f8  5b e7 20 43 20 ec 20 58  |....:...[. C . X|
00000540  4f 2b 58 53 2a 58 28 4c  5f 4c 45 53 53 29 2c 59  |O+XS*X(L_LESS),Y|
00000550  4f 2b 59 53 2a 59 28 4c  5f 4c 45 53 53 29 3a ec  |O+YS*Y(L_LESS):.|
00000560  20 58 4f 2b 58 53 2a 58  28 4c 5f 4d 49 44 44 4c  | XO+XS*X(L_MIDDL|
00000570  45 29 2c 59 4f 2b 59 53  2a 59 28 4c 5f 4d 49 44  |E),YO+YS*Y(L_MID|
00000580  44 4c 45 29 3a f0 20 26  35 35 2c 58 4f 2c 59 4f  |DLE):. &55,XO,YO|
00000590  0d 03 02 05 e1 0d 03 0c  05 3a 0d 03 16 05 3a 0d  |.........:....:.|
000005a0  03 20 05 3a 0d 03 2a 1f  dd 20 f2 43 4c 4f 55 44  |. .:..*.. .CLOUD|
000005b0  28 53 2c 52 2c 4e 2c 58  4f 2c 59 4f 2c 58 53 2c  |(S,R,N,XO,YO,XS,|
000005c0  59 53 29 0d 03 34 07 58  3d 53 0d 03 3e 07 59 3d  |YS)..4.X=S..>.Y=|
000005d0  30 0d 03 48 05 3a 0d 03  52 0f e3 20 4c 20 3d 20  |0..H.:..R.. L = |
000005e0  31 20 b8 20 4e 0d 03 5c  20 f2 52 4f 54 28 58 2b  |1 . N..\ .ROT(X+|
000005f0  b4 28 b3 29 2a b3 28 32  35 29 2c 59 2c 4c 2a 33  |.(.)*.(25),Y,L*3|
00000600  36 30 2f 4e 29 0d 03 66  0b 58 28 4c 29 3d 4e 58  |60/N)..f.X(L)=NX|
00000610  0d 03 70 0b 59 28 4c 29  3d 4e 59 0d 03 7a 07 ed  |..p.Y(L)=NY..z..|
00000620  20 4c 0d 03 84 05 3a 0d  03 8e 0f e3 20 43 20 3d  | L....:..... C =|
00000630  20 30 20 b8 20 31 0d 03  98 11 e3 20 4c 20 3d 20  | 0 . 1..... L = |
00000640  32 20 b8 20 4e 2d 31 0d  03 a2 15 f2 53 45 47 28  |2 . N-1.....SEG(|
00000650  43 2c 4c 2d 31 2c 4c 2c  4c 2b 31 29 0d 03 ac 07  |C,L-1,L,L+1)....|
00000660  ed 20 4c 0d 03 b6 11 f2  53 45 47 28 43 2c 4e 2c  |. L.....SEG(C,N,|
00000670  31 2c 32 29 0d 03 c0 13  f2 53 45 47 28 43 2c 4e  |1,2).....SEG(C,N|
00000680  2d 31 2c 4e 2c 31 29 0d  03 ca 07 ed 20 43 0d 03  |-1,N,1)..... C..|
00000690  d4 05 e1 0d ff                                    |.....|
00000695