Forest fire: Difference between revisions

Content deleted Content added
Thundergnat (talk | contribs)
m →‎{{header|Ring}}: Remove vanity tags
Chkas (talk | contribs)
Line 3,616:
..TTTB....TTTTTT..T.T
TT..T....T..T..TTTT..</pre>
 
=={{header|Easyprog.online}}==
 
[https://easyprog.online/ide/run.html?code=subr%20init%0Afor%20r%20range%20100%0Afor%20c%20range%20100%0Ai%20%3D%20r%20%2A%20102%20%2B%20c%20%2B%20103%0Ap%5Bi%5D%20%3D%20-1%0Aif%20randomf%20%3C%200.55%0Af%5Bi%5D%20%3D%201%0Aelse%0Af%5Bi%5D%20%3D%200%0A.%0A.%0A.%0Atimer%200%0A.%0Asubr%20show%0Afor%20r%20range%20100%0Afor%20c%20range%20100%0Ai%20%3D%20r%20%2A%20102%20%2B%20c%20%2B%20103%0Ah%20%3D%20f%5Bi%5D%0Aif%20h%20%3C%3E%20p%5Bi%5D%0Amove%20c%20r%0Aif%20h%20%3D%200%0Acolor%20654%0Aelif%20h%20%3D%201%0Acolor%20484%0Aelse%0Acolor%20990%0A.%0Arect%201%201%0A.%0A.%0A.%0A.%0Asubr%20update%0Aswap%20f%5B%5D%20p%5B%5D%0Afor%20r%20range%20100%0Afor%20c%20range%20100%0Ai%20%3D%20r%20%2A%20102%20%2B%20c%20%2B%20103%0Aif%20p%5Bi%5D%20%3D%200%0Af%5Bi%5D%20%3D%200%0Aif%20randomf%20%3C%200.003%0Af%5Bi%5D%20%3D%201%0A.%0Aelif%20p%5Bi%5D%20%3D%2010%0Af%5Bi%5D%20%3D%200%0Aelse%0Af%5Bi%5D%20%3D%201%0As%20%3D%200%0As%20%2B%3D%20p%5Bi%20-%20103%5D%20%2B%20p%5Bi%20-%20102%5D%20%2B%20p%5Bi%20-%20101%5D%0As%20%2B%3D%20p%5Bi%20-%201%5D%20%2B%20p%5Bi%20%2B%201%5D%0As%20%2B%3D%20p%5Bi%20%2B%20101%5D%20%2B%20p%5Bi%20%2B%20102%5D%20%2B%20p%5Bi%20%2B%20103%5D%0Aif%20s%20%3E%3D%2010%20or%20randomf%20%3C%200.00001%0Af%5Bi%5D%20%3D%2010%0A.%0A.%0A.%0A.%0A.%0Aon%20timer%0Acall%20show%0Acall%20update%0Atimer%200.2%0A.%0Alen%20f%5B%5D%20102%20%2A%20102%0Alen%20p%5B%5D%20len%20f%5B%5D%0Acall%20init Run it]
 
<lang>subr init
for r range 100
for c range 100
i = r * 102 + c + 103
p[i] = -1
if randomf < 0.55
f[i] = 1
else
f[i] = 0
.
.
.
timer 0
.
subr show
for r range 100
for c range 100
i = r * 102 + c + 103
h = f[i]
if h <> p[i]
move c r
if h = 0
color 654
elif h = 1
color 484
else
color 990
.
rect 1 1
.
.
.
.
subr update
swap f[] p[]
for r range 100
for c range 100
i = r * 102 + c + 103
if p[i] = 0
f[i] = 0
if randomf < 0.003
f[i] = 1
.
elif p[i] = 10
f[i] = 0
else
f[i] = 1
s = 0
s += p[i - 103] + p[i - 102] + p[i - 101]
s += p[i - 1] + p[i + 1]
s += p[i + 101] + p[i + 102] + p[i + 103]
if s >= 10 or randomf < 0.00001
f[i] = 10
.
.
.
.
.
on timer
call show
call update
timer 0.2
.
len f[] 102 * 102
len p[] len f[]
call init</lang>
 
=={{header|Emacs Lisp}}==
<lang lisp>#!/usr/bin/env emacs -script