シェル芸botがリバーシのゲーム機に

@qwertanusさんがbashの関数で記述されたリバーシのプログラムをツイートで打ち込んでシェル芸botをゲーム機に。→@yukito_2828さんと対戦 (途中いろんな人がゲームを分岐しましたが、わけがわからないので割愛してます)
9
くおん @qwertanus

@tos # findIndex(){ X=$1;Y=$2 for ((x=$1+$3,y=$2+$4;x>=0&&y>=0&&x<=7&&y<=7;x+=$3,y+=$4));do N=${F[y]:$x:1} if [ $N = $P ];then X=$[x-($3)];Y=$[y-($4)];break elif [ $N = _ ];then break fi done ([ $X = $1 ]&&[ $Y = $2 ])&&return 1 return 0 } # twitter.com/qwertanus/stat…

2019-08-14 14:56:22
くおん @qwertanus

#!/usr/bin/env bash F=( ________ ________ ________ ___01___ ___10___ ________ ________ ________ ) L=(00000000 11111111) P=1 PN=(白 黒) NUM=(0 1 2 3 4 5 6 7) #

2019-08-14 14:55:52
くおん @qwertanus

@tos # flip(){ findIndex $1 $2 $3 $4||return 1 for ((x=X,y=Y;x!=$1||y!=$2;x-=$3,y-=$4));do F[y]=${F[y]:0:x}$P${F[y]:x+1} done } # twitter.com/qwertanus/stat…

2019-08-14 14:56:55
くおん @qwertanus

@tos # game(){ i=0 flag=0 for vy in -1 1;do for vx in {-1..1};do flip $1 $2 $vx $vy||((flag++)) done done for vx in -1 1;do findIndex $1 $2 $vx 0||((flag++)) done [ $flag = 8 ]&&return 1 F[$2]=$( echo ${F[$2]:0:$1}|sed "s/$P$[!P]*\$/${L[P]}/"|head -c$1 echo -n $P # twitter.com/qwertanus/stat…

2019-08-14 14:58:07
くおん @qwertanus

@tos # echo ${F[$2]:$1}|sed "s/^_$[!P]*$P/${L[P]}/"|tail -c$[8-$1] ) } showscore(){ (echo 'y\x01234567' for i in {0..7};do echo ${NUM[i]} ${F[i]} done|sed 's/0/○/g;s/1/●/g;s/_/_/g')|textimg -s --foreground black -b white -F 60 echo ${PN[P]}のターンです sleep 1 } # twitter.com/qwertanus/stat…

2019-08-14 14:59:08
くおん @qwertanus

@tos # reversi(){ if [ $1 = "pass" ];then P=$[!P] [ $# -eq 1 ]&&(echo ${PN[P]}がパスしました;showscore) return 0 fi if [ ${F[$2]:$1:1} != _ ]||! game $1 $2;then [ $# -eq 2 ]&&(echo そこには置けません;showscore) return 1 fi P=$[!P] if [ $# -eq 2 ];then showscore fi } # twitter.com/qwertanus/stat…

2019-08-14 15:00:00
くおん @qwertanus

#シェル芸 # # 今度こそ動いてくれ echo シェル芸リバーシ! echo 1行目に\'#\シェル\芸 \#\'、2行目に\'reversi x y\'と書いて引用しよう! reversi 3 2 twitter.com/qwertanus/stat…

2019-08-14 15:00:42
シェル芸bot(停止しました) @minyoruminyon

シェル芸リバーシ! 1行目に'#シェル芸 #'、2行目に'reversi x y'と書いて引用しよう! 白のターンです twitter.com/qwertanus/stat… pic.twitter.com/P54zax2a6p

2019-08-14 15:00:54
拡大
yasuhiroki 🦊 @duck_yasuhiroki

シェル芸OXゲーム作って満足してたら、シェル芸リバーシが生まれてた。すげえ...。

2019-08-14 15:05:13
シェル芸bot(停止しました) @minyoruminyon

シェル芸リバーシ! 1行目に'#シェル芸 #'、2行目に'reversi x y'と書いて引用しよう! そこには置けません 黒のターンです twitter.com/yukito_2828/st… pic.twitter.com/AKUuzgzJFy

2019-08-14 15:06:01
拡大
くおん @qwertanus

@duck_yasuhiroki これ、以前作ったやつを、盤面を見やすいように書き換えただけなんです。

2019-08-14 15:06:15
シェル芸bot(停止しました) @minyoruminyon

シェル芸リバーシ! 1行目に'#シェル芸 #'、2行目に'reversi x y'と書いて引用しよう! そこには置けません 黒のターンです twitter.com/yukito_2828/st… pic.twitter.com/L6EYrgWves

2019-08-14 15:14:12
拡大
くおん @qwertanus

@duck_yasuhiroki 引用のリンクの処理が面倒なんですよね…パイプでつなぐ発想は無かったです。

2019-08-14 15:19:28
1 ・・ 7 次へ