Home » Archimedes archive » Acorn User » AU 1995-01.adf » !StarInfo_StarInfo » VanMourik/FLOCK2

VanMourik/FLOCK2

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 1995-01.adf » !StarInfo_StarInfo
Filename: VanMourik/FLOCK2
Read OK:
File size: 02EF bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >FLOCK2
   20REM (C) JEAN VAN MOURIK MILLCOTTAGE DERWYDD AMMANFORD DYFED SA183LQ  UK. 94
   30DIMX%(99),Y%(99),Z%(99),X(399),Y(399):MODE1:OFF
   40PRINT" SIMULATES FLOCKING BEHAVIOUR.":PRINT:PRINT" LEFT BUTTON TO DISOLVE FLOCKS."
   50REPEAT:MOUSEA,B,C:UNTILC:FORX=0TO399:X(X)=COSRADX*8+.5:Y(X)=SINRADX*8+.5:NEXT:F%=4444:CLS:GCOL3,3:G%=44:REM G% = NUMBER OF BIRDS
   60FORX%=1TOG%:X%(X%)=RND(1280):Y%(X%)=RND(1024):Z%(X%)=RND(360):POINTX%(X%),Y%(X%):NEXT
   70 
   80REM MAIN LOOP
   90REPEAT:FORX%=1TOG%:E%=RND(3)-2:Z%(X%)=(Z%(X%)+E%+360)MOD360:POINTX%(X%),Y%(X%):X%(X%)=(X%(X%)+X(Z%(X%))+1280)MOD1280:Y%(X%)=(Y%(X%)+Y(Z%(X%))+1024)MOD1024:POINTX%(X%),Y%(X%):NEXT
  100MOUSEK%,L%,M%:IFM% UNTIL0
  110FORX%=1TOG%:N%=RND(G%):IFX%-N% A%=X%(X%)-X%(N%):B%=Y%(X%)-Y%(N%):M%=A%*A%+B%*B%:IFM%<F% Z%(N%)=Z%(X%):POINTX%(N%),Y%(N%):X%(N%)+=(A%*.3):Y%(N%)+=(B%*.3):POINTX%(N%),Y%(N%)
  120NEXT:UNTIL0


� >FLOCK2
M� (C) JEAN VAN MOURIK MILLCOTTAGE DERWYDD AMMANFORD DYFED SA183LQ  UK. 94
,�X%(99),Y%(99),Z%(99),X(399),Y(399):�1:�
(J�" SIMULATES FLOCKING BEHAVIOUR.":�:�" LEFT BUTTON TO DISOLVE FLOCKS."
2c�:ȗA,B,C:�C:�X=0�399:X(X)=��X*8+.5:Y(X)=��X*8+.5:�:F%=4444:�:�3,3:G%=44:� G% = NUMBER OF BIRDS
<J�X%=1�G%:X%(X%)=�(1280):Y%(X%)=�(1024):Z%(X%)=�(360):ȒX%(X%),Y%(X%):�
F 
P� MAIN LOOP
Z��:�X%=1�G%:E%=�(3)-2:Z%(X%)=(Z%(X%)+E%+360)�360:ȒX%(X%),Y%(X%):X%(X%)=(X%(X%)+X(Z%(X%))+1280)�1280:Y%(X%)=(Y%(X%)+Y(Z%(X%))+1024)�1024:ȒX%(X%),Y%(X%):�
dȗK%,L%,M%:�M% �0
n��X%=1�G%:N%=�(G%):�X%-N% A%=X%(X%)-X%(N%):B%=Y%(X%)-Y%(N%):M%=A%*A%+B%*B%:�M%<F% Z%(N%)=Z%(X%):ȒX%(N%),Y%(N%):X%(N%)+=(A%*.3):Y%(N%)+=(B%*.3):ȒX%(N%),Y%(N%)
x�:�0
�
00000000  0d 00 0a 0d f4 20 3e 46  4c 4f 43 4b 32 0d 00 14  |..... >FLOCK2...|
00000010  4d f4 20 28 43 29 20 4a  45 41 4e 20 56 41 4e 20  |M. (C) JEAN VAN |
00000020  4d 4f 55 52 49 4b 20 4d  49 4c 4c 43 4f 54 54 41  |MOURIK MILLCOTTA|
00000030  47 45 20 44 45 52 57 59  44 44 20 41 4d 4d 41 4e  |GE DERWYDD AMMAN|
00000040  46 4f 52 44 20 44 59 46  45 44 20 53 41 31 38 33  |FORD DYFED SA183|
00000050  4c 51 20 20 55 4b 2e 20  39 34 0d 00 1e 2c de 58  |LQ  UK. 94...,.X|
00000060  25 28 39 39 29 2c 59 25  28 39 39 29 2c 5a 25 28  |%(99),Y%(99),Z%(|
00000070  39 39 29 2c 58 28 33 39  39 29 2c 59 28 33 39 39  |99),X(399),Y(399|
00000080  29 3a eb 31 3a 87 0d 00  28 4a f1 22 20 53 49 4d  |):.1:...(J." SIM|
00000090  55 4c 41 54 45 53 20 46  4c 4f 43 4b 49 4e 47 20  |ULATES FLOCKING |
000000a0  42 45 48 41 56 49 4f 55  52 2e 22 3a f1 3a f1 22  |BEHAVIOUR.":.:."|
000000b0  20 4c 45 46 54 20 42 55  54 54 4f 4e 20 54 4f 20  | LEFT BUTTON TO |
000000c0  44 49 53 4f 4c 56 45 20  46 4c 4f 43 4b 53 2e 22  |DISOLVE FLOCKS."|
000000d0  0d 00 32 63 f5 3a c8 97  41 2c 42 2c 43 3a fd 43  |..2c.:..A,B,C:.C|
000000e0  3a e3 58 3d 30 b8 33 39  39 3a 58 28 58 29 3d 9b  |:.X=0.399:X(X)=.|
000000f0  b2 58 2a 38 2b 2e 35 3a  59 28 58 29 3d b5 b2 58  |.X*8+.5:Y(X)=..X|
00000100  2a 38 2b 2e 35 3a ed 3a  46 25 3d 34 34 34 34 3a  |*8+.5:.:F%=4444:|
00000110  db 3a e6 33 2c 33 3a 47  25 3d 34 34 3a f4 20 47  |.:.3,3:G%=44:. G|
00000120  25 20 3d 20 4e 55 4d 42  45 52 20 4f 46 20 42 49  |% = NUMBER OF BI|
00000130  52 44 53 0d 00 3c 4a e3  58 25 3d 31 b8 47 25 3a  |RDS..<J.X%=1.G%:|
00000140  58 25 28 58 25 29 3d b3  28 31 32 38 30 29 3a 59  |X%(X%)=.(1280):Y|
00000150  25 28 58 25 29 3d b3 28  31 30 32 34 29 3a 5a 25  |%(X%)=.(1024):Z%|
00000160  28 58 25 29 3d b3 28 33  36 30 29 3a c8 92 58 25  |(X%)=.(360):..X%|
00000170  28 58 25 29 2c 59 25 28  58 25 29 3a ed 0d 00 46  |(X%),Y%(X%):...F|
00000180  05 20 0d 00 50 0f f4 20  4d 41 49 4e 20 4c 4f 4f  |. ..P.. MAIN LOO|
00000190  50 0d 00 5a 9d f5 3a e3  58 25 3d 31 b8 47 25 3a  |P..Z..:.X%=1.G%:|
000001a0  45 25 3d b3 28 33 29 2d  32 3a 5a 25 28 58 25 29  |E%=.(3)-2:Z%(X%)|
000001b0  3d 28 5a 25 28 58 25 29  2b 45 25 2b 33 36 30 29  |=(Z%(X%)+E%+360)|
000001c0  83 33 36 30 3a c8 92 58  25 28 58 25 29 2c 59 25  |.360:..X%(X%),Y%|
000001d0  28 58 25 29 3a 58 25 28  58 25 29 3d 28 58 25 28  |(X%):X%(X%)=(X%(|
000001e0  58 25 29 2b 58 28 5a 25  28 58 25 29 29 2b 31 32  |X%)+X(Z%(X%))+12|
000001f0  38 30 29 83 31 32 38 30  3a 59 25 28 58 25 29 3d  |80).1280:Y%(X%)=|
00000200  28 59 25 28 58 25 29 2b  59 28 5a 25 28 58 25 29  |(Y%(X%)+Y(Z%(X%)|
00000210  29 2b 31 30 32 34 29 83  31 30 32 34 3a c8 92 58  |)+1024).1024:..X|
00000220  25 28 58 25 29 2c 59 25  28 58 25 29 3a ed 0d 00  |%(X%),Y%(X%):...|
00000230  64 15 c8 97 4b 25 2c 4c  25 2c 4d 25 3a e7 4d 25  |d...K%,L%,M%:.M%|
00000240  20 fd 30 0d 00 6e a2 e3  58 25 3d 31 b8 47 25 3a  | .0..n..X%=1.G%:|
00000250  4e 25 3d b3 28 47 25 29  3a e7 58 25 2d 4e 25 20  |N%=.(G%):.X%-N% |
00000260  41 25 3d 58 25 28 58 25  29 2d 58 25 28 4e 25 29  |A%=X%(X%)-X%(N%)|
00000270  3a 42 25 3d 59 25 28 58  25 29 2d 59 25 28 4e 25  |:B%=Y%(X%)-Y%(N%|
00000280  29 3a 4d 25 3d 41 25 2a  41 25 2b 42 25 2a 42 25  |):M%=A%*A%+B%*B%|
00000290  3a e7 4d 25 3c 46 25 20  5a 25 28 4e 25 29 3d 5a  |:.M%<F% Z%(N%)=Z|
000002a0  25 28 58 25 29 3a c8 92  58 25 28 4e 25 29 2c 59  |%(X%):..X%(N%),Y|
000002b0  25 28 4e 25 29 3a 58 25  28 4e 25 29 2b 3d 28 41  |%(N%):X%(N%)+=(A|
000002c0  25 2a 2e 33 29 3a 59 25  28 4e 25 29 2b 3d 28 42  |%*.3):Y%(N%)+=(B|
000002d0  25 2a 2e 33 29 3a c8 92  58 25 28 4e 25 29 2c 59  |%*.3):..X%(N%),Y|
000002e0  25 28 4e 25 29 0d 00 78  08 ed 3a fd 30 0d ff     |%(N%)..x..:.0..|
000002ef