RosettaCodeData/Task/Wireworld/Sidef/wireworld.sidef

32 lines
648 B
Text
Raw Permalink Normal View History

2023-07-18 13:51:12 -07:00
var f = [[], DATA.lines.map {['', .chars..., '']}..., []]
2023-07-01 11:58:00 -04:00
10.times {
2023-07-18 13:51:12 -07:00
say f.map { .join(" ") + "\n" }.join
var a = [[]]
for y in (1 ..^ f.end) {
var r = f[y]
var rr = ['']
for x in (1 ..^ r.end) {
var c = r[x]
2023-07-01 11:58:00 -04:00
rr << (
given(c) {
when('H') { 't' }
when('t') { '.' }
2023-07-18 13:51:12 -07:00
when('.') { <. H>[[f[y-1 .. y+1]].map{.[x-1 .. x+1]}.count('H') ~~ [1,2]] }
2023-07-01 11:58:00 -04:00
default { c }
}
)
}
2023-07-18 13:51:12 -07:00
rr << ''
a << rr
2023-07-01 11:58:00 -04:00
}
2023-07-18 13:51:12 -07:00
f = [a..., []]
2023-07-01 11:58:00 -04:00
}
__DATA__
tH.........
. .
...
. .
Ht.. ......