Galton box animation: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Minor tidy) |
(Added Easylang) |
||
Line 910: | Line 910: | ||
| o o o o o o o o o o o | |
| o o o o o o o o o o o | |
||
+---------------------------------------+</pre> |
+---------------------------------------+</pre> |
||
=={{header|EasyLang}}== |
|||
[https://easylang.dev/show/#cod=https://easylang.dev/show/#cod=dVNdc4IwEHzPr9iZvqgMlCDYOlP8Ix0f+IhtFBMnYIV/3wkEJIAvcLcc2d27S9mUqOStYKeKvIHclMyQq+Rx46KEB48AOEkFjkpirzMDnDXADQDgKv8YVjSCC77GBls4OGODHXj7dBA8izOusoLB9z4M1vJ4xCOZLKRCFEWkV0HSJLv8KHkXOVyqRRZMIJX19xHUb5NR2HRhb6X8lY9U1jMn1DfENeJBII2m/jQLP05M1qC+D7d1Fy76CqauWi1c8Oq1kI4KMQZlo1Sf8Ya+OeGWSIGKX5nSH/kJ6b1sdC0SkUMlIueiQogYtD+9K6AjgzZ9d85EgiUk/LTQpkMDC0wVSy4DS9+B/s2Kktl6jDnduYIlrRszsdfTGk1EK8YBtodW2FeMaDfX60wF9/VXmWM3s9MyOjG22GDVtzXABgFcbNez2q4ltYV7z2zk37Dn2tCqhgsarfGOZcnhouRDjP0Obrc4eX3U2/hCkT/Fh3+ceDytgWD4frA25FkieLUAz8Y/a4GdjUJzsxrrui1fJ6DbffgeJR4xMSH/ Run it] |
|||
<syntaxhighlight> |
|||
sys topleft |
|||
# |
|||
proc drawpins . . |
|||
for i to 9 |
|||
for j to i |
|||
move (15 - i) * 3 + j * 6 i * 6 + 2 |
|||
circle 0.7 |
|||
. |
|||
. |
|||
. |
|||
color 555 |
|||
drawpins |
|||
background -1 |
|||
# |
|||
len box[] 10 |
|||
len x[] 10 |
|||
len y[] 10 |
|||
# |
|||
proc showbox . . |
|||
for i to 10 |
|||
x = i * 6 + 15 |
|||
for j to box[i] |
|||
move x 100 - j * 4 + 2 |
|||
circle 2 |
|||
. |
|||
. |
|||
. |
|||
proc init . . |
|||
for i to 10 |
|||
box[i] = 0 |
|||
x[i] = 0 |
|||
. |
|||
. |
|||
# |
|||
color 543 |
|||
on timer |
|||
if busy = 0 and randint 4 = 1 |
|||
busy = 1 |
|||
for i to 10 |
|||
if x[i] = 0 |
|||
x[i] = 48 |
|||
y[i] = 2 |
|||
break 1 |
|||
. |
|||
. |
|||
else |
|||
busy = 0 |
|||
. |
|||
clear |
|||
showbox |
|||
for i to 10 |
|||
x = x[i] |
|||
if x > 0 |
|||
if y[i] <= 56 |
|||
y[i] += 2 |
|||
if y[i] mod 6 = 2 |
|||
x += 3 * (randint 2 * 2 - 3) |
|||
x[i] = x |
|||
. |
|||
else |
|||
idx = (x - 15) / 6 |
|||
y[i] += 4 |
|||
if y[i] >= 96 - box[idx] * 4 |
|||
x[i] = 0 |
|||
box[idx] += 1 |
|||
if box[idx] > 10 |
|||
init |
|||
break 1 |
|||
. |
|||
. |
|||
. |
|||
move x y[i] |
|||
circle 2 |
|||
. |
|||
. |
|||
timer 0.1 |
|||
. |
|||
timer 0 |
|||
</syntaxhighlight> |
|||
=={{header|Elm}}== |
=={{header|Elm}}== |