Created
March 31, 2017 03:46
-
-
Save kuwa72/bc081e2073d79b45ff387eebe92e0d17 to your computer and use it in GitHub Desktop.
Life game(requirements: zsh, egzact. Tested on OSX).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env zsh | |
FO=$(cat) | |
X=$(head -n 1 <<<$FO) | |
YL=$(echo $FO|wc -l|bc) | |
FF=$((echo $X|tr 1 0;echo $FO;echo $X|tr 1 0)|addl 0\ |addr \ 0) | |
for L in {1..$YL};do | |
for C in {1..$(echo $X|awk '{print NF}')}; do | |
echo $FF | sed -n $L,$((L+2))p | cut -d \ -f $C,$((C+1)),$((C+2)) | xargs | { | |
read B | |
if echo $B | grep -q '. . . . 1 . . . .';then | |
S=$(echo $B|tr \ +|addr -- -1|bc) | |
if [ $S -le 1 -o $S -ge 4 ];then | |
echo -n 0 | |
else | |
echo -n 1 | |
fi | |
else | |
if [ $(tr \ +<<<$B|bc) -eq 3 ];then | |
echo -n 1 | |
else | |
echo -n 0 | |
fi | |
fi | |
} | |
echo -n \ | |
done | |
echo | |
done |
example Glider
~/s/egzact ❯❯❯ echo "0 0 0 0 0 0 0 0 0 0\n0 1 0 0 0 0 0 0 0 0\n0 0 1 0 0 0 0 0 0 0\n1 1 1 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0" | zsh lg.sh master ✱ ◼
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
~/s/egzact ❯❯❯ echo "0 0 0 0 0 0 0 0 0 0\n0 1 0 0 0 0 0 0 0 0\n0 0 1 0 0 0 0 0 0 0\n1 1 1 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0" | zsh lg.sh | zsh lg.sh master ✱ ◼
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
~/s/egzact ❯❯❯ echo "0 0 0 0 0 0 0 0 0 0\n0 1 0 0 0 0 0 0 0 0\n0 0 1 0 0 0 0 0 0 0\n1 1 1 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0" | zsh lg.sh | zsh lg.sh | zsh lg.sh master ✱ ◼
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
~/s/egzact ❯❯❯ echo "0 0 0 0 0 0 0 0 0 0\n0 1 0 0 0 0 0 0 0 0\n0 0 1 0 0 0 0 0 0 0\n1 1 1 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0" | zsh lg.sh | zsh lg.sh | zsh lg.sh | zsh lg.sh
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is life game evaluation a turn. Read stdin (space splitted 2 dimention map like 0 0 0\n0 1 0\n0 0 0), output evaluated a turn.
usage.