简陋国际象棋v0.1

sh/bash/dash/ksh/zsh等Shell脚本
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12
送出感谢: 0
接收感谢: 0
联系:

简陋国际象棋v0.1

#1

帖子 solcomo » 2008-07-16 16:26

:D 无任何规则

代码: 全选

#!/bin/bash

w_rook=♖
w_knight=♘
w_bishop=♗
w_queen=♕
w_king=♔
w_pawns=♙

b_rook=♜
b_knight=♞
b_bishop=♝
b_queen=♛
b_king=♚
b_pawns=♟

all=('' $w_rook $w_knight $w_bishop $w_queen $w_king $w_bishop $w_knight $w_rook \
     $w_pawns $w_pawns $w_pawns $w_pawns $w_pawns $w_pawns $w_pawns $w_pawns \
     ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' \
     ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' \
     ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' \
     ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' \
     $b_pawns $b_pawns $b_pawns $b_pawns $b_pawns $b_pawns $b_pawns $b_pawns \
     $b_rook $b_knight $b_bishop $b_queen $b_king $b_bishop $b_knight $b_rook)

cat <<EOF
  ╭───────────────╮
 8│${all[57]} ${all[58]} ${all[59]} ${all[60]} ${all[61]} ${all[62]} ${all[63]} ${all[64]}│
 7│${all[49]} ${all[50]} ${all[51]} ${all[52]} ${all[53]} ${all[54]} ${all[55]} ${all[56]}│
 6│${all[41]} ${all[42]} ${all[43]} ${all[44]} ${all[45]} ${all[46]} ${all[47]} ${all[48]}│
 5│${all[33]} ${all[34]} ${all[35]} ${all[36]} ${all[37]} ${all[38]} ${all[39]} ${all[40]}│
 4│${all[25]} ${all[26]} ${all[27]} ${all[28]} ${all[29]} ${all[30]} ${all[31]} ${all[32]}│
 3│${all[17]} ${all[18]} ${all[19]} ${all[20]} ${all[21]} ${all[22]} ${all[23]} ${all[24]}│
 2│${all[9]} ${all[10]} ${all[11]} ${all[12]} ${all[13]} ${all[14]} ${all[15]} ${all[16]}│
 1│${all[1]} ${all[2]} ${all[3]} ${all[4]} ${all[5]} ${all[6]} ${all[7]} ${all[8]}│
  ╰───────────────╯
   A B C D E F G H

EOF

echo -ne '\e[6n';read -sdR sign;sign=`echo "$sign" | sed -e 's/.*\[//g' -e 's/;.*//g'`

while true;do
   echo -ne "\033[$(($sign-1));6H      "
   echo -ne "\033[$(($sign-1));1HPiece:"
   read piece
   if [[ "$piece" =~ ^[a-hA-H][1-8]$ ]];then
      r=`echo $piece | cut -b2`
      c=`echo $piece | cut -b1 | sed -e 's/a/1/I' -e 's/b/2/I' -e 's/c/3/I' -e 's/d/4/I' -e 's/e/5/I' -e 's/f/6/I' -e 's/g/7/I' -e 's/h/8/I'`
      piece=${all[$(($c+$((($r-1)*8))))]}
   else
      echo -ne "\033[$sign;1HWithout the piece" && continue
   fi
   if [[ "$piece" =~ [♜♞♝♛♚♟♖♘♗♕♔♙] ]];then
      echo -ne "\033[$sign;1H$piece                                          "
      echo -ne "\033[$(($sign-1));13H                                        "
      echo -ne "\033[$(($sign-1));13HTo:"
      read pos
      if [[ "$pos" =~ ^[a-hA-H][1-8]$ ]];then
         pr=`echo $pos | cut -b2`
         pc=`echo $pos | cut -b1 | sed -e 's/a/1/I' -e 's/b/2/I' -e 's/c/3/I' -e 's/d/4/I' -e 's/e/5/I' -e 's/f/6/I' -e 's/g/7/I' -e 's/h/8/I'`
         arrnum=$(($pc+$((($pr-1)*8))))
         arrpos=${all[$arrnum]}
         echo -ne "\033[$sign;13H$pos"
         all[$(($pc+$((($pr-1)*8))))]=$piece
         all[$(($c+$((($r-1)*8))))]=' '
         echo -ne "\033[$(($sign-$pr-3));$(($pc*2+2))H${all[$(($pc+$((($pr-1)*8))))]}"
         echo -ne "\033[$(($sign-$r-3));$(($c*2+2))H${all[$(($c+$((($r-1)*8))))]}"
      else
         echo -ne "\033[$sign;1HWithout the pos" && continue
      fi
   else
      echo -ne "\033[$sign;1HWithout the piece" && continue
   fi
done



代码: 全选

  ╭───────────────╮
 8│♜   ♝   ♜   ♚  │
 7│♟ ♟   ♞   ♟ ♝ ♟│
 6│    ♟ ♖   ♞ ♟  │
 5│        ♟      │
 4│    ♙   ♙      │
 3│    ♘   ♗ ♘   ♙│
 2│♙ ♙   ♙   ♙ ♙  │
 1│    ♔         ♖│
  ╰───────────────╯
   A B C D E F G H
Piece:      To:e3                                   
♗           e3     
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

#2

帖子 bones7456 » 2008-07-16 16:29

先顶了再运行...
关注我的blog: ε==3
头像
lovewine
帖子: 1233
注册时间: 2006-03-25 10:36
送出感谢: 0
接收感谢: 0
联系:

#3

帖子 lovewine » 2008-07-16 16:29

有gnuchess珠玉在前, 这个shell 程序估计没有名堂可做了。
楼主辛苦了,创意不错。
让自由的声音传传传传传传传传天下。。。
Spread the words of freedom.
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

#4

帖子 bones7456 » 2008-07-16 16:33

赞一个

汗一个
关注我的blog: ε==3
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12
送出感谢: 0
接收感谢: 0
联系:

#5

帖子 solcomo » 2008-07-16 16:33

lovewine 写了:有gnuchess珠玉在前, 这个shell 程序估计没有名堂可做了。
楼主辛苦了,创意不错。


gunchess :shock:
没玩过
下来玩玩
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

#6

帖子 bones7456 » 2008-07-16 16:34

其实AI可以调用其他程序来作的哦...
关注我的blog: ε==3
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12
送出感谢: 0
接收感谢: 0
联系:

#7

帖子 solcomo » 2008-07-16 16:36

bones7456 写了:其实AI可以调用其他程序来作的哦...


...怎么调用...
问题是现在连走棋规则都弄不出来..
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#8

帖子 eexpress » 2008-07-16 16:37

c吧
● 鸣学
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

#9

帖子 bones7456 » 2008-07-16 16:40

c了就没意思了啊,呵呵,不就是整着好玩嘛
关注我的blog: ε==3
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
送出感谢: 0
接收感谢: 3 次
联系:

#10

帖子 xiooli » 2008-07-16 16:45

不会玩任何棋类和牌类的超级纯粹强悍难遇前无古人后无来者的人高傲滴飘过~~~~~~~
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12
送出感谢: 0
接收感谢: 0
联系:

#11

帖子 solcomo » 2008-07-16 16:52

xiooli 写了:不会玩任何棋类和牌类的超级纯粹强悍难遇前无古人后无来者的人高傲滴飘过~~~~~~~


我也只是在遥远的小时候玩过...
现在就记得基本规则了...
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
送出感谢: 0
接收感谢: 3 次
联系:

#12

帖子 xiooli » 2008-07-16 16:57

怎么走棋啊?
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12
送出感谢: 0
接收感谢: 0
联系:

#13

帖子 solcomo » 2008-07-16 17:01

xiooli 写了:怎么走棋啊?

:shock: 按棋盘上的坐标来啊

piece: 的坐标一定要有棋子
to: 就随便你去哪了,把自己的王吃了都行 :lol:
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
syrano
帖子: 4313
注册时间: 2007-10-06 18:40
送出感谢: 0
接收感谢: 5 次

#14

帖子 syrano » 2008-07-16 17:08

solcomo 写了:
xiooli 写了:怎么走棋啊?

:shock: 按棋盘上的坐标来啊

piece: 的坐标一定要有棋子
to: 就随便你去哪了,把自己的王吃了都行 :lol:

一直用jin,上FICS(free internet chess server)跟高手玩。
上次由 syrano 在 2008-07-16 17:16,总共编辑 1 次。
E=m c^2
头像
kofshower
帖子: 1343
注册时间: 2007-03-13 11:23
送出感谢: 0
接收感谢: 0
联系:

#15

帖子 kofshower » 2008-07-16 17:16

syrano 写了:
solcomo 写了:
xiooli 写了:怎么走棋啊?

:shock: 按棋盘上的坐标来啊

piece: 的坐标一定要有棋子
to: 就随便你去哪了,把自己的王吃了都行 :lol:

一直用Jinx,上网跟高手玩。

jinx是什么?科普先?jinx=谢军?
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
回复

回到 “Shell脚本”