脚本实现人机<石头,剪刀,布>游戏,机器应用随机方法,结合用户输入给出结果,文章有两种方法,重在理解,第一种方法是该脚本的逻辑方面,第二种较容易理解。
一 : 第一种方法,让机器给出一个随机数字 0-2,我们可以假设有一个数组为game(石头 剪刀 布),game[0]=石头 game[1]=剪刀 game[2]=布,我们将num的变量想作是 game[num],数组里面位。结合case语句,我们给用户的印象是,当输入1的时候为石头,那么这时候game【0】为石头,直接在case语句里面做出判断。给出相应结果。
如果难以理解可以将num变为 nmu=$[RANDOM%3+1],这样我们单独看shell可以看成老虎棒子鸡。或者比较数字,当然这里的效果和石头剪刀布的效果是一样的。
下面是代码:
#!/bin/bash
num=$[RANDOM%3]
echo "请根据下列提示选择您的出拳手势"
echo "1 石头"
echo "2 剪刀"
echo "3 布"
read -p "请选择1-3 " person
case $person in
1)
if [ $num -eq 0 ];then
echo "平局"
elif [ $num -eq 1 ];then
echo "你赢了"
else
echo "你输了"
fi;;
2)
if [ $num -eq 1 ];then
echo "平局"
elif [ $num -eq 2 ];then
echo "你赢了"
else
echo "你输了"
fi;;
3)
if [ $num -eq 2 ];then
echo "平局"
elif [ $num -eq 3 ];then
echo "你赢了"
else
echo "你输了"
fi;;
*)
echo "请输入1~3"
esac
二:第二种方法 ,定义了两个变量,一个是机器出的定义了y, 用户的定义为了x,然后做出三种判断,下面是代码:

#!/bin/bash
num=$[RANDOM%3+1]
case $num in
1)
y="石头";;
2)
y="剪刀";;
3)
y="布";;
esac

read -p "请输入石头、剪刀、布 :" x
echo "机器出的是 : $y"
echo "你 出的 是 : $x"
if [ $x == $y ];then
echo "平手"
elif [[ $x == "石头" && $y == "剪刀" ]] ||
[[ $x == "剪刀" && $y == "布" ]] ||
[[ $x == "布" && $y == "石头" ]];then
echo "你赢了"
else
echo "你输了"
fi
肯定有不同方法,可以根据需求写shell,有更好的方法可以私信博主,或评论区分享。谢谢。

转载于:https://blog.51cto.com/13589092/2066024

(石头、剪刀、布)shell脚本,随机对比,case的应用相关推荐

  1. Java黑皮书课后题第5章:**5.34(游戏:石头、剪刀、布)编程练习题3.17给出玩石头-剪刀-布游戏的程序。修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止

    5.34(游戏:石头.剪刀.布)编程练习题3.17给出玩石头-剪刀-布游戏的程序.修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止 题目 题目概述 编程练习题3.17 破题 ...

  2. [案例2-5]石头 剪刀 布小游戏

    1.任务描述 "剪刀石头布"的游戏相信大家都不陌生,本案例要求编写一个剪刀石头布游戏的程序.程序启动后会随机生成1~3的随机数,分别代表剪刀.石头和布,玩家通过键盘输入剪刀.石头和 ...

  3. python中answer是什么意思_用Python实现的quot;石头,剪刀,布quot; - The answer to everything - ITeye博客...

    需求:设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面是规则.你和你的对手,在同一时间做出特定的手势,必须是下面一种手势 ...

  4. shell脚本之 if,case,for的用法

    目录 一.条件选择:if语句 二.条件判断:case语句 三.for循环 一.条件选择:if语句 单分支 if 判断条件;then 条件为真的分支代码 fi 例子:判断一个数字是否等于10 #!/bi ...

  5. 【shell脚本】沐风晓月跟你聊聊shell脚本中的case实战

    前言 前面我们已经介绍了while及for循环,结合if语句可以构建一些简单的控制面板及菜单脚本,今天我们来探讨下case语句. case选择语句,主要用于对多个选择条件进行匹配输出,与if elif ...

  6. shell脚本中的case语句使用要点

    1.双分号(;;) 用于case语句中一个分支的结束. 可类比C++里面switch...case语句,在case语句之后,若所有语句都输完,后面跟着的"break;". 2.星号 ...

  7. linux文件比较脚本,shell脚本之对比不同目录的下的文件

    让负责一部分代码的版本,担心公共目录下有人可能会稍微修改部分代码,因此把代码备份到自己的一个目录中,上传svn之前,如果发现公共目录的下的文件被修改,则找出变化部分,避免出现不可知的文件变化. 使用d ...

  8. Python实现石头-剪刀-布小游戏

    近日在学习Python的一些基础知识,觉得还是很有趣的一个一门语言!就目前的学习的一些知识,编写了一些一个简单的石头剪刀布的游戏.主要是熟悉一些Python的一些控制语句. import random ...

  9. Java黑皮书课后题第3章:*3.17(游戏:剪刀、石头、布)编写可以玩流行的剪刀-石头-布游戏的程序

    *3.17(游戏:剪刀.石头.布)编写可以玩流行的剪刀-石头-布游戏的程序 题目 题目概述 运行示例 ***特别注意*** 破题 代码 题目 题目概述 *3.17(游戏:剪刀.石头.布)编写可以玩流行 ...

最新文章

  1. Activity创建
  2. Oracle ASM Cluster File Systems (ACFS)应用指南
  3. destoon 屏蔽会员组,让个人,游客不显示
  4. Java垃圾回收日志解析
  5. 关于Java 8的Optional的介绍
  6. sublime text 3安装及使用
  7. WeX5 3.8开发工具之蓝牙打印(全流程记录不是最全,胜似最全)
  8. 「Python基础知识」Python字符串是什么,如何使用
  9. java web程序设计教程范立锋 最后的图书馆理系统_JavaWeb程序设计 习题参考答案(第7章)...
  10. 如何提升Wi-Fi速度 学会更改无线信道
  11. 亿乐社区最新版开源无后源码
  12. dependency报错
  13. retainall java_java用retainALL 处理两个具有相同元素的list,竟然返回false,这是为什么?...
  14. Java导入导出Excel控件简介
  15. 天然气压缩因子计算软件_为什么测量天然气选择气体涡轮流量计?
  16. 1KB文件夹快捷方式病毒解决方法
  17. 手把手教你架构3D引擎高级篇系列一
  18. GBD+XGBOOST算法原理深入解析
  19. CentOS和WIN7双系统时间错误
  20. archetype-catalog.xml

热门文章

  1. 虚同步(Virtual Synchrony)核心文献
  2. COMP3055 Machine Learning Coursework
  3. buuctf 派大星的烦恼 详解
  4. 七上八下猜数字_车上互动游戏
  5. 简单实现自定义Android TextView字体
  6. 2021ICPC沈阳区域赛BEFIJM
  7. 基于Java毕业设计在线云音乐系统源码+系统+mysql+lw文档+部署软件
  8. 商务手机最大突破是打破墨守成规的工作方式
  9. 汽车牌照的排序与查询
  10. 编译原理,C语言实现LR(0)分析(扩展文法的生成、项目集规范簇的生成、ACTION GOTO表的生成、句子的分析)