RosettaCodeData/Task/Wireworld/Sidef/wireworld.sidef

32 lines
661 B
Plaintext

var f = [[], DATA.lines.map {['', .chars..., '']}..., []];
10.times {
say f.map { .join(" ") + "\n" }.join;
var a = [[]];
for y in (1 .. f.end-1) {
var r = f[y];
var rr = [''];
for x in (1 .. r.end-1) {
var c = r[x];
rr << (
given(c) {
when('H') { 't' }
when('t') { '.' }
when('.') { <. H>[f.ft(y-1, y+1).map{.ft(x-1, x+1)...}.count('H') ~~ [1,2]] }
default { c }
}
)
}
rr << '';
a << rr;
}
f = [a..., []];
}
__DATA__
tH.........
. .
...
. .
Ht.. ......