linux-centos- 石头剪刀布小游戏-shell版

使用case语句,穷举法

具体代码如下:

#!/bin/bash
computer=$[$RANDOM%3+1]    //定义变量电脑, 后者为随机数生成,范围1-3
read -p " 请问你出什么 石头1 剪刀2 布3 : " player       //定义玩家
case "$computer$player" in                        //定义条件模板

[1][2])                                             //匹配模板
echo "你输了,电脑出的石头,你的剪刀"
;;
[1][3])
echo "你赢了,电脑出的石头,你出的布"
;;
[1][1])
echo "平局,你们都出的石头"
;;
[2][2])
echo "平局,你们都出的剪刀"
;;
[2][1])
echo "你赢了,电脑出的剪刀,你出的石头"
;;
[2][3])
echo "你输了,电脑出的剪刀,你出的布"
;;
[3][3])
echo "平局,你们都出的布"
;;
[3][1])
echo "你输了,电脑出的布,你出的石头"
;;
[3][2]) "你赢了,电脑出的布,你出的剪刀"
;;
*?)                                    //上面没匹配到的,默认匹配它
echo "回家多学会,再来玩"
esac

运行结果

[root@ shanan ~]# sh test4.sh
 请问你出什么 石头1 剪刀231
你输了,电脑出的布,你出的石头
[root@ shanan ~]# sh test4.sh
 请问你出什么 石头1 剪刀232
你输了,电脑出的石头,你的剪刀
[root@ shanan ~]# sh test4.sh
 请问你出什么 石头1 剪刀233
你输了,电脑出的剪刀,你出的布
[root@ shanan ~]# sh test4.sh
 请问你出什么 石头1 剪刀234566
回家多学会,再来玩

使用if 语句

代码如下

#!/bin/bash
#name=石头剪刀布
computer=$[$RANDOM%3+1]
read -p " 请问你出什么 石头1 剪刀2 布3 : " player

if [ $player -le 3 ] && [ $player -ge 1 ]
  then 
     
     if [ $player -eq $computer  ] && [ $player = 1 ]
     then
     echo "  平局,你们都出的石头   "
     
     elif [ $player -eq $computer  ] && [ $player = 2 ] 
     then
     
     echo "  平局,你们都出的剪刀   "
     elif [ $player -eq $computer  ] && [ $player = 3 ]
     then
      echo "  平局,你们都出的布  "
                  
     elif [ $player -gt $computer  ] && [ $player = 2 ]
     then
     echo " 你输了,你出的剪刀,电脑出的石头"
      elif [ $player -gt $computer ] && [ $player = 3 ] && [ $computer = 1 ]
     then
     echo "你赢了,电脑出的石头,你出的布"
     
      elif [ $player -gt $computer  ] && [ $computer = 2 ]
     then
      echo "你输了,电脑出的剪刀,你出的布"
     
     elif [ $player -lt $computer  ] && [ $player = 2 ]
      then
      echo "你赢了,电脑出的布,你出的剪刀"
     
     
     elif [ $player -lt $computer  ] && [ $computer = 2 ]
     then
     echo  "你赢了,电脑出的剪刀,你出的石头"
      
      elif [ $player -lt $computer  ] && [ $player = 1 ]&& [ $computer = 3 ]
     then  
      echo  "你输了,电脑出的布,你出的石头"
     fi
else
echo "回家多学会再来玩"
fi

运行结果

[root@ shanan ~]# sh test5.sh
 请问你出什么 石头1 剪刀233
  平局,你们都出的布  
[root@ shanan ~]# sh test5.sh
 请问你出什么 石头1 剪刀233
你输了,电脑出的剪刀,你出的布
[root@ shanan ~]# sh test5.sh
 请问你出什么 石头1 剪刀234
回家多学会再来玩

猜你喜欢

转载自blog.csdn.net/BIGmustang/article/details/107399941