您的位置:首页 > 运维架构 > Shell

shell编程实例-石头剪子布游戏

2016-11-16 21:54 393 查看
新建game.sh文件,编辑内容如下:

Input()
{
while :
do
echo "请选择剪刀(J)、石头(S)或(B)"
read Choice
case $Choice in
J|j)
echo -n "您选择的是\"$Choice\"剪刀,"
userChoice=0
break
;;
S|s)
echo -n "您选择的是\"$Choice\"石头,"
userChoice=1
break
;;
B|b)
echo -n "您选择的是\"$Choice\"布,"
userChoice=2
break
;;
*)
echo"您的输入不正确,请重新输入"
sleep 1
;;
esac
done
}

function Judge()
{
let NumUser=$1  #$1表示传入的第一个参数
let NumComp=$RANDOM%3
[ $NumComp -eq 0 ] && echo "电脑选择的是\"J\"剪刀" #如果电脑选择的为0,则打印 “...剪刀”
[ $NumComp -eq 1 ] && echo "电脑选择的是\"S\"石头"
[ $NumComp -eq 2 ] && echo "电脑选择的是\"B\"布"

let ${CntUser:=0} #如果User变量未被定义过或为空,则赋值为0
let ${CntComp:0}
if [ $NumUser -eq $NumComp ];then
echo "本局平局"
elif [ $NumUser -eq 0 ];then
if [ $NumComp -eq 2 ];then
echo "本局你赢!";let CntUser++
else
echo "本局你输!";let CntComp++
fi
elif [ $NumComp -eq 0 ];then
if [ $NumUser -eq 2 ];then
echo "本局你输!";let CntComp++
else
echo "本局你赢!";let CntUser++
fi
elif [ $NumUser -gt $NumComp ];then
echo "本局你赢!" ;let CntUser++
else
echo "本局你输!";let CntComp++
fi

}

#--main program--
clear;echo "欢迎来到剪刀、石头、布游戏!"
CntUser=0  #你赢的局数
CntComp=0  #电脑赢的局数
Round=1    #回合数
while [ $Round -le 3 ]
do
echo ">>第$Round回合"
Input
Judge $userChoice #userChoice为传入的参数
let Round++
[ $CntUser -ge 2 ]&& echo "欧耶你赢了!" && exit
[ $CntComp -ge 2 ]&& echo "好遗憾你输了。。。" && exit
done
echo "最终打成了平局呢^_^"
进入game.sh所在的文件夹,为其加权限

chmod u+x game.sh


执行

./game.sh
运行结果如图:



!!!尤其要主要代码中的空格,例如

1.while和:之间的空号

2.[后面和]前面的空格
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: