我是靠谱客的博主 迷人外套,这篇文章主要介绍shell案例分享之猜拳人机大战!需求:猜拳人机大战思路分析脚本实现,现在分享给大家,希望可以做个参考。

shell脚本猜拳人机大战

  • 需求:猜拳人机大战
  • 思路分析
  • 脚本实现
    • (1)单次进行游戏
    • (2)一起进行5次游戏并统计结果输出
    • (3)进行自定义多次游戏并统计最终结果

需求:猜拳人机大战

思路分析

电脑随机产生3个数中的一个数,每个数各代表剪刀石头布中的一个,我们再输入一个数与电脑产生的数进行比较,根据比较得出输赢。如果是多局就考虑使用循环实现。

脚本实现

(1)单次进行游戏

编写代码

[root@server ~]# vim caiquan.sh

在这里插入图片描述
给脚本执行权限并验证

[root@server ~]# chmod +x caiquan.sh
[root@server ~]# bash caiquan.sh
猜拳人机对战开始
剪刀:0 石头:1:2  请输入数字代表出拳(选择数字012): 1
你赢了
[root@server ~]# bash caiquan.sh
猜拳人机对战开始
剪刀:0 石头:1:2  请输入数字代表出拳(选择数字012): 0
你赢了
[root@server ~]# bash caiquan.sh
猜拳人机对战开始
剪刀:0 石头:1:2  请输入数字代表出拳(选择数字012): 2
你赢了
[root@server ~]#

执行结果
在这里插入图片描述

(2)一起进行5次游戏并统计结果输出

假定比赛5局,比完5局并统计相应的猜拳结果,可以对上面代码进行优化修改。

[root@server ~]# vim caiquan.sh

#!/bin/bash
#这是一个猜拳人机大战的脚本
#作者:古怪七
echo -e "e[32m猜拳人机对战开始e[0m"
win=0
ping=0
loss=0
for((i=1;i<=5;i++))
do
#提示输入你的出拳
read -p "剪刀:0 石头:1 步:2 这是第$i局 请输入数字代表出拳(选择数字0,1,2): " number
#定义一个变量随机数为电脑出的数值来代表出拳
com=`expr $RANDOM % 3`
case $number in
[0])
        if [ $com -eq 0 ];then
                echo "平局"
                let ping=$ping+1
                elif [  $com -eq 1 ];then
                        echo "你输了"
                        let loss=$loss+1
                        elif [  $com -eq 2 ];then
                             echo "你赢了"
                                let win=$win+1
        fi
;;
[1])
        if [ $com -eq 0 ];then
                echo "你赢了"
                let win=$win+1

                elif [  $com -eq 1 ];then
                        echo "平局"
                        let ping=$ping+1
                        elif [  $com -eq 2 ];then
                                echo "你输了"
                                let loss=$loss+1

        fi
;;
[2])
        if [ $com -eq 0 ];then
                echo "你输了"
                let loss=$loss+1
                elif [  $com -eq 1 ];then
                        echo "你赢了"
                        let win=$win+1
                        elif [  $com -eq 2 ];then
                                 echo "平局"
                                let ping=$ping+1
        fi
;;
*)
echo "你的输入错误,出拳错误"
;;
esac
done
let i=$i-1
echo "一共进行了$i局,你赢了$win局,平了$ping局,输了$loss局"

[root@server ~]# bash caiquan.sh
猜拳人机对战开始
剪刀:0 石头:1:2 这是第1请输入数字代表出拳(选择数字012): 1
平局
剪刀:0 石头:1:2 这是第2请输入数字代表出拳(选择数字012): 2
平局
剪刀:0 石头:1:2 这是第3请输入数字代表出拳(选择数字012): 1
你输了
剪刀:0 石头:1:2 这是第4请输入数字代表出拳(选择数字012): 0
平局
剪刀:0 石头:1:2 这是第5请输入数字代表出拳(选择数字012): 1
你输了
一共进行了5局,你赢了0局,平了3局,输了2

在这里插入图片描述

(3)进行自定义多次游戏并统计最终结果

对以上脚本进行进一步优化。

[root@server ~]# vim caiquan.sh

#!/bin/bash
#这是一个猜拳人机大战的脚本
#作者:古怪七
echo -e "e[32m猜拳人机对战开始e[0m"
#定义一个变量为统计赢的局数
win=0
#定义一个变量为统计平的局数
ping=0
#定义一个变量为统计输的局数
loss=0
#定义一个变量为出拳输入错误的局数
cuo=0
#提示输入要对战的总局数
read -p "请输入你要进行对战的总局数:" n
for((i=1;i<=$n;i++))
do
#提示输入你的出拳
read -p "剪刀:0 石头:1 步:2 这是第$i局 请输入数字代表出拳(选择数字0,1,2): " number
#定义一个变量随机数为电脑出的数值来代表出拳
com=`expr $RANDOM % 3`
case $number in
[0])
        if [ $com -eq 0 ];then
                echo "平局"
                let ping=$ping+1
                elif [  $com -eq 1 ];then
                        echo "你输了"
                        let loss=$loss+1
                        elif [  $com -eq 2 ];then
                             echo "你赢了"
                                let win=$win+1
        fi
;;
[1])
        if [ $com -eq 0 ];then
                echo "你赢了"
                let win=$win+1

                elif [  $com -eq 1 ];then
                        echo "平局"
                        let ping=$ping+1
                        elif [  $com -eq 2 ];then
                                echo "你输了"
                                let loss=$loss+1

        fi
;;
[2])
        if [ $com -eq 0 ];then
                echo "你输了"
                let loss=$loss+1
                elif [  $com -eq 1 ];then
                        echo "你赢了"
                        let win=$win+1
                        elif [  $com -eq 2 ];then
                                 echo "平局"
                                let ping=$ping+1
        fi
;;
*)
echo "你的输入错误,出拳错误"
let cuo=$cuo+1
;;
esac
done
echo "一共进行了$n局,你赢了$win局,平了$ping局,输了$loss局,出拳输入错误$cuo局"

在这里插入图片描述

最后

以上就是迷人外套最近收集整理的关于shell案例分享之猜拳人机大战!需求:猜拳人机大战思路分析脚本实现的全部内容,更多相关shell案例分享之猜拳人机大战内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部