1、小的国际象棋
#!/bin/bash
i=1
while [ $i -le 8 ];do
j=1
while [ $j -le 8 ];do
let k=i+j
if [ $[k%2] -eq 0 ];then
echo -en "\033[41m \033[0m" ---打印2个空格
else
echo -en "\033[43m \033[0m" ---打印2个空格
fi
let j++
done
echo
let i++
done
总结:小的国际象棋需要打印8行8列,每一列的8种颜色是根据,行数+列数为奇数打印一种颜色,为偶数打印另外一种颜色来实现的。
大的国际象棋
#!/bin/bash
i=1
while [ $i -le 16 ];do
j=1
while [ $j -le 8 ];do
case $i in
3|4|7|8|11|12|15|16)
if [ $[j%2] -eq 0 ];then
echo -en "\033[41m \033[0m" ---打印4个空格
else
echo -en "\033[43m \033[0m"---打印4个空格
fi
;;
*)
if [ $[j%2] -eq 0 ];then
echo -en "\033[43m \033[0m" ---打印4个空格
else
echo -en "\033[41m \033[0m" ---打印4个空格
fi
;;
esac
let j++
done
echo
let i++
done
总结:大的国际象棋需要打印16行8列,每一列的8中颜色是根据,奇数列打印一种颜色,偶数列打印另外一种颜色,但打印之前先判断是否是3|4|7|8|11|12|15|16这些行,如果是这些行,打印列的时候奇数行和偶数行的颜色正好相反。