这里我用了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 实现石头剪刀布游戏的方法很多,开动脑筋试试吧!