欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

shell脚本打印国际象棋棋盘

程序员文章站 2023-02-15 23:46:49
本文实例为大家分享了shell打印国际象棋棋盘的具体代码,供大家参考,具体内容如下 代码如下: #!/bin/bash #set chess cell's...

本文实例为大家分享了shell打印国际象棋棋盘的具体代码,供大家参考,具体内容如下

代码如下:

#!/bin/bash

#set chess cell's width
read -p "please set the chess cell's width( two space width as unit ):" width
if [[ $width =~ "^[0-9]+$" ]];then
 echo "wrong width setting, check your input and try again."
 exit
fi
let width=$width*2

#choose player's board cell color
player="player1"
ps3="which color do you want to set for $player :"
select choice in red green yellow blue purple cyan white;do
 case $reply in
 [1-7])
 if [[ $player == player2 ]];then
  declare -i color2=$reply
  break
 else
  declare -i color1=$reply
 fi
 player="player2"
 ps3="which color do you want to set for $player :"
 ;;
 *)
 ;;
 esac
done
if (( color1==color2 ));then
 echo "two player must choose different color, check your choice and try again."
 exit
fi

#print the chess board
for (( i=0; i<4; i++ )); do
 for (( j=0; j<$width/2; j++ ));do
 for (( k=0; k<4; k++ ));do
  echo -e "\e[4${color1}m$(printf %${width}s)\e[0m\c"
  echo -e "\e[4${color2}m$(printf %${width}s)\e[0m\c"
 done
 echo
 done
 for (( j=0; j<$width/2; j++ ));do
 for (( k=0; k<4; k++ ));do
  echo -e "\e[4${color2}m$(printf %${width}s)\e[0m\c"
  echo -e "\e[4${color1}m$(printf %${width}s)\e[0m\c"
 done
 echo
 done
done

参考文章:

linux shell编程绘制国际象棋棋盘

shell 教程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。