这里我用了3种方法来实现石头剪刀布小游戏,对于新手来说应该是比较易懂的
第一种:使用if语句实现
[root@localhost opt]# vim youxi1.sh
#!/bin/bash
a=$[RANDOM%3+1]
read -p "请猜拳(1.石头 2.剪刀 3.布)" b
if [ $b = 1 ] || [ $b = 2 ] || [ $b = 3 ];then
if [ $a = $b ] && [ $a = 1 ];then
echo "平手,电脑出的石头,你出的石头";elif
[ $a = $b ] && [ $a = 2 ];then
echo "平手,电脑出的剪刀,你出的剪刀";elif
[ $a = $b ] && [ $a = 3 ];then
echo "平手,电脑出的布,你出的布";elif
[ $a -lt $b ] && [ $a = 1 ] && [ $b = 2 ];then
echo "惜败,电脑出的石头,你出的剪刀";elif
[ $a -lt $b ] && [ $a = 2 ] && [ $b = 3 ];then
echo "惜败,电脑出的剪刀,你出的布";elif
[ $a -lt $b ] && [ $a = 1 ] && [ $b = 3 ];then
echo "你赢了,电脑出的石头,你出的布";elif
[ $a -gt $b ] && [ $a = 2 ] && [ $b = 1 ];then
echo "你赢了,电脑出的剪刀,你出的石头";elif
[ $a -gt $b ] && [ $a = 3 ] && [ $b = 1 ];then
echo "惜败,电脑出的布,你出的石头";elif
[ $a -gt $b ] && [ $a = 3 ] && [ $b = 2 ];then
echo "你赢了,电脑出的布,你出的剪刀"
fi
else
echo "请正确出拳"
fi
第二种:使用case语句实现
[root@localhost opt]# vim youxi2.sh
#!/bin/bash
a=$[RANDOM%3+1]
read -p "请猜拳(1.石头 2.剪刀 3.布)" b
case "$a""$b" in
[1][1])
echo "平手,你和电脑都出的石头"
;;
[1][2])
echo "你输了,电脑出的石头,你出的剪刀"
;;
[1][3])
echo "你赢了,电脑出的石头,你出的布"
;;
[2][1])
echo "你赢了,电脑出的剪刀,你出的石头"
;;
[2][2])
echo "平手,你和电脑都出的剪刀"
;;
[2][3])
echo "你输了,电脑出的剪刀,你出的布"
;;
[3][1])
echo "你输了,电脑出的布,你出的石头"
;;
[3][2])
echo "你赢了,电脑出的布,你出的剪刀"
;;
[3][3])
echo "平手,你和电脑都出的布"
;;
*)
echo "请正确出拳"
esac
第三种:if语句和case语句实现
[root@localhost opt]# vim youxi.sh
#!/bin/bash
a=$[RANDOM%3+1]
read -p "请猜拳(1.石头 2.剪刀 3.布)" b
case "$b" in
[1])
if [ $a -eq 1 ];then
echo "平手,电脑出的石头";elif
[ $a -eq 2 ];then
echo "你赢了,电脑出的剪刀";else
[ $a -eq 3 ]
echo "惜败,电脑出的布"
fi
;;
[2])
if [ $a -eq 1 ];then
echo "惜败,电脑出的石头";elif
[ $a -eq 2 ];then
echo "平手,电脑出的剪刀";else
[ $a -eq 3 ]
echo "你赢了,电脑出的布"
fi
;;
[3])
if [ $a -eq 1 ];then
echo "你赢了,电脑出的石头";elif
[ $a -eq 2 ];then
echo "惜败,电脑出的剪刀";else
[ $a -eq 3 ]
echo "平手,电脑出的布"
fi
;;
*)
echo "请输入1-3之间的数"
esac
实现石头剪刀布游戏的方法很多,开动脑筋试试吧!