diff options
author | epoch <epoch@hacking.allowed.org> | 2018-03-31 22:20:15 -0500 |
---|---|---|
committer | epoch <epoch@hacking.allowed.org> | 2018-03-31 22:20:15 -0500 |
commit | 706561629ee22078fc8e976979f49da397920047 (patch) | |
tree | b5114f51343d030058786723db2a31a8acdb668f /examples/chess/gnuchess-to-hackvr.sh | |
parent | 9e49dcb25e7ccea65948adb07be6206f867b79f5 (diff) | |
download | hackvr-706561629ee22078fc8e976979f49da397920047.tar.gz hackvr-706561629ee22078fc8e976979f49da397920047.zip |
added example game of chess that uses gnuchess as backend
Diffstat (limited to 'examples/chess/gnuchess-to-hackvr.sh')
-rwxr-xr-x | examples/chess/gnuchess-to-hackvr.sh | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/examples/chess/gnuchess-to-hackvr.sh b/examples/chess/gnuchess-to-hackvr.sh new file mode 100755 index 0000000..0b94a87 --- /dev/null +++ b/examples/chess/gnuchess-to-hackvr.sh @@ -0,0 +1,31 @@ +#!/bin/sh +tee /dev/stderr | while read first second third;do + if [ "_$first" = "_feature" ];then + printf "# just gnuchess saying what features it has: %s %s %s\n" "$first" "$second" "$third" >&2 + elif printf "%s\n" "$first" | grep '^[0-9][0-9]*\.$' >/dev/null 2>&1;then + #we made a successful move. + ### how to tell hackvr to move the piece now? $second should contain what the move was. + printf "# Hey! Hackvr! do this move: %s\n" "$second" >&2 + if [ "_$second" = "_..." ];then #computer/other person made a move. + move=$third + else + move=$second + fi + from=$(printf "%s\n" "$move" | fold -w1 | head -n2 | tr -d '\n') + to=$(printf "%s\n" "$move" | fold -w1 | tail -n+3 | head -n2 | tr -d '\n') + x=$(echo "a b c d e f g h" | tr ' ' '\n' | grep -n "$(printf "%s\n" "$to" | fold -w1 | head -n1)" | cut -d: -f1) + y=$(printf "%s\n" "$to" | fold -w1 | tail -n1) + magic=$(printf "%s\n" "$move" | fold -w1 | tail -n+5 | tr -d '\n') +### if the board is on the wall we need to use x and y +# printf "piece_%s move %s %s 0\n" "$from" "$x" "$y" | tee /dev/stderr +### the board is on the floor atm. use x and z + printf "piece_%s move %s 0 %s\n" "$from" "$x" "$y" | tee /dev/stderr + + printf "#delete the old piece_%s group\n" + printf "epoch deletegroup piece_%s\n" "$to" + printf "epoch renamegroup piece_%s piece_%s\n" "$from" "$to" | tee /dev/stderr + else + #something else. + printf "oops. something else happened. let's see: %s %s %s\n" "$first" "$second" "$third" >&2 + fi +done |