One-dimensional cellular automata: Difference between revisions

→‎{{header|Perl 6}}: simplification
m (→‎{{header|Perl 6}}: splitting code + fixing indent)
(→‎{{header|Perl 6}}: simplification)
Line 2,363:
 
<lang perl6>class Automata {
has ($.rule, @.cells);
constant @patterns = reverse ^8;
has Int $.rule;
has @.cells;
method gist { <| |>.join: @!cells.map({$_ ?? '#' !! ' '}).join }
method code { hash @patterns Z=> $.rule.fmt("%08b").comb }
method succ {
self.new: :$.rule, :cells(
self.code{[
4 «*« @.cells.rotate(-1)
Z+ 2 «*« @.cells
Z+ @.cells.rotate(-1)
}]
)
}
1,934

edits