{
【コードゴルフ】シンプル・ライフゲーム
http://d...content-available-to-author-only...e.jp/Ozy/20151107
Pascal で書いた物を読みやすく整形したソースです
なおコードの短さを優先したため N=0 の時は間違った答え(第1世代)が出ます
}
var
N,H,W,C,X,Y,Z,i:Int32;
S,B:AnsiString;
begin
// Read from stdin
Readln(N,H,W);
repeat B:=B+S;Readln(S)until''=S;
// Lifegame Logic
S:=B;
repeat
for i:=0to W*H-1do
begin
C:=0;
Y:=i div W;
Z:=i-Y*W;
for Y:=Y-1to Y+1do
for X:=Z-1to Z+1do
C:=C+Ord(B[Ord(X<W)*X-Ord(X<0)*(X-W+1)+(Ord(Y<H)*Y-Ord(Y<0)*(Y-H+1))*W+1]='*');
S[i+1]:=('.*')[1+Ord((C=3)or(C*10+2=Ord(B[i+1])))]
end;
B:=S;
Dec(N)
until N=0;
// Write to stdout
for Y:=0to H-1do Writeln(Copy(B,1+Y*W,W))
end.
ewogIOOAkOOCs+ODvOODieOCtOODq+ODleOAkeOCt+ODs+ODl+ODq+ODu+ODqeOCpOODleOCsuODvOODoAogIGh0dHA6Ly9kLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLmpwL096eS8yMDE1MTEwNwogIAogIFBhc2NhbCDjgafmm7jjgYTjgZ/nianjgpLoqq3jgb/jgoTjgZnjgY/mlbTlvaLjgZfjgZ/jgr3jg7zjgrnjgafjgZkKICDjgarjgYrjgrPjg7zjg4njga7nn63jgZXjgpLlhKrlhYjjgZfjgZ/jgZ/jgoEgTj0wIOOBruaZguOBr+mWk+mBleOBo+OBn+etlOOBiO+8iOesrO+8keS4luS7o++8ieOBjOWHuuOBvuOBmQp9CnZhcgogIE4sSCxXLEMsWCxZLFosaTpJbnQzMjsKICBTLEI6QW5zaVN0cmluZzsKYmVnaW4KICAvLyBSZWFkIGZyb20gc3RkaW4KICBSZWFkbG4oTixILFcpOwogIHJlcGVhdCBCOj1CK1M7UmVhZGxuKFMpdW50aWwnJz1TOwoKICAvLyBMaWZlZ2FtZSBMb2dpYwogIFM6PUI7CiAgcmVwZWF0CiAgICBmb3IgaTo9MHRvIFcqSC0xZG8gCiAgICBiZWdpbgogICAgICBDOj0wOwogICAgICBZOj1pIGRpdiBXOwogICAgICBaOj1pLVkqVzsKICAgICAgZm9yIFk6PVktMXRvIFkrMWRvIAogICAgICAgIGZvciBYOj1aLTF0byBaKzFkbyAKICAgICAgICAgIEM6PUMrT3JkKEJbT3JkKFg8VykqWC1PcmQoWDwwKSooWC1XKzEpKyhPcmQoWTxIKSpZLU9yZChZPDApKihZLUgrMSkpKlcrMV09JyonKTsKICAgICAgU1tpKzFdOj0oJy4qJylbMStPcmQoKEM9MylvcihDKjEwKzI9T3JkKEJbaSsxXSkpKV0KICAgIGVuZDsKICAgIEI6PVM7CiAgICBEZWMoTikKICB1bnRpbCBOPTA7CgogIC8vIFdyaXRlIHRvIHN0ZG91dAogIGZvciBZOj0wdG8gSC0xZG8gV3JpdGVsbihDb3B5KEIsMStZKlcsVykpCmVuZC4=