Syntactic Confectionery Delight PerlMonks

### comment on

 Need Help??
Recent discussion of Pascal's triangle reminded me of a cool 1-D Cellular Automata and Wolfram's famous Rule 30.

Try \$rule = 18, 22, 30, 45, 54, 110, or 150 for some snazzy Pascal's Triangle variations.

RuleFoo

update: Also rules 122, 126, 129, 146, 151

```#!/usr/bin/perl

use strict;

my \$rule = shift || 30;
my \$wide = shift || 80;
my \$high = shift || 60;

my \$binary = reverse(substr(sprintf("%8.8b", \$rule), -8, 8));
\$binary =~ tr/01/ */;
#print "\$binary\n";

my (%rules, \$key, \$i);

for (\$i = 7; \$i >= 0; \$i--) {
\$key = sprintf("%3.3b", \$i);
\$key =~ tr/01/ */;
\$rules{\$key} = substr(\$binary, \$i, 1);
#print "\$key \$rules{\$key}\n";
}

my (\$str, @chs);

for (1..\$wide) {
if (rand(2) < 1) { \$str .= ' '; }
else             { \$str .= '*'; }
}

for (1..\$high) {
@chs = split('', \$str);
print "\$str\n";
\$str = '';
for (\$i = 0; \$i < \$wide; \$i++) {
\$key = "\$chs[\$i-1]\$chs[\$i]\$chs[(\$i+1)%@chs]";
\$str .= \$rules{\$key};
}
}

In reply to 1-D Cellular Automata by YuckFoo

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

• Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
• Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
• Read Where should I post X? if you're not absolutely sure you're posting in the right place.
• Posts may use any of the Perl Monks Approved HTML tags:
a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
• You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
 For: Use: & & < < > > [ [ ] ]
• Link using PerlMonks shortcuts! What shortcuts can I use for linking?

Create A New User
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2020-10-26 10:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
My favourite web site is:

Results (251 votes). Check out past polls.

Notices?