_TITLE "Sandpiles by Ashish, mod #4 B+ 2021-01-22 more color bigger grain" ' from "Sandpiles by Ashish mod for symmetry and color by B+ 2019-03-04"
' mod 3 2021-01-22 bigger grains bigger pallet
' mod 4 2021-01-29 mod to use more than 4 colors maybe a range, just takes 1 number as variable to test different pallet amounts
' using Steve's Memory method for array copy Thanks for reminder!
CONST Ncolrs
= 16 'number of shades of brown for sand <<< low numbers give high contrast for nice design and faster spred f = 255 / Ncolrs
pal
(i
) = _RGB32(i
* f
, i
* f
/ 2, i
* f
/ 4)grain(75, 75) = 500000: ng(75, 75) = 500000
IF grain
(x
, y
) <= Ncolrs
THEN c
= pal
(grain
(x
, y
)) ELSE c
= &HFFFFAA66 'see update IF grain
(x
, y
) > Ncolrs
THEN 'update next generation array NOT this generation array ng(x - 1, y) = ng(x - 1, y) + 1
ng(x + 1, y) = ng(x + 1, y) + 1
ng(x, y + 1) = ng(x, y + 1) + 1
ng(x, y - 1) = ng(x, y - 1) + 1
ng(x, y) = ng(x, y) - 4
'copy ng() into grain() ' AFTER UPDATING ALL OF NG()
_MEMCOPY m
(0), m
(0).OFFSET
, m
(0).SIZE
TO m
(1), m
(1).OFFSET
'_LIMIT 60