编写shell脚本,实现打印国际象棋棋盘
程序员文章站
2022-05-12 10:55:32
...
代码如下:
#!/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
参考文章:
上一篇: 算法提高 最长单词
下一篇: 我的java学习-哈希函数和哈希表