Abelian sandpile model: Difference between revisions
m
→{{header|Perl}}: future-proof for 5.36, use new bitwise string operators
SqrtNegInf (talk | contribs) m (→{{header|Perl}}: future-proof for 5.36, use new bitwise string operators) |
|||
Line 2,659:
=={{header|Perl}}==
<syntaxhighlight lang="perl">
use warnings;
use feature 'bitwise';
my ($high, $wide) = split ' ', qx(stty size);
Line 2,669 ⟶ 2,668:
my $pile = $mask =~ s/\177/ rand() < 0.02 ? chr 64 + rand 20 : "\0" /ger;
for (
{
print "\e[H", $pile =~ tr/\0-\177/ 1-~/r, "\n$_";
Line 2,677 ⟶ 2,676:
for ("\0$add", "\0" x $wide . $add, substr($add, 1), substr $add, $wide)
{
$pile |.= $_;
$pile =~ tr/\200-\377/\1-\176/; # add one to each neighbor of >=4
$pile &.= $mask;
}
select undef, undef, undef, 0.1; # comment out for full speed
|