仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 834|回复: 7
打印 上一主题 下一主题

[shell编程] 来一发shell小游戏 猜数字

[复制链接]
飘飘悠悠 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎大家来到仓酷云论坛!天生的暗码和用户输出能够承受反复数字
以是绝对一样平常划定规矩的猜数字大概难度要年夜很多
本版本划定规矩:
A--数字对,地位也对
B--扫除A的了局后,数字对,但地位不合错误
入手下手后,体系化初始化一个4位可反复数字,如“1223”。假定用户第一次输出“1234”,那末体系将提醒“2A1B”,前两位数字“12”不异而且地位也不异,为“2A”。后两位数字中,用户输出的“3”与密文中“3”不异,但二者地位分歧,则为“1B”,终极了局为“2A1B”。
再假定用户此时输出“1232”,那末了局则为“2A2B”,盘算***与上次一样。

代码以下
  1. #!/bin/bashclearechoecho"###################################################################"echo"#thisisabash-shellgamewritebyEmail:breeze7086@gmail.com#"echo"#thegamecalled*digits*,andthisversionhaverepeatednumbers#"echo"#version1.0#"echo"###################################################################"echo-e"
  2. "declareINPUTdeclarePASSWORDdeclareAdeclareBdeclareXdeclareYdeclareLOOP#ThisfuntioninitthevariablePASSWORDthatuserneedtoguessinit_password(){PASSWORD=`echo$(($RANDOM%10000))`echo$PASSWORD|grep^[0-9]{4}$>/dev/null2>&1if[$?!=0]theninit_passwordelseinputfi}#Thisfuntionaccepttheinputfromuserskeyboardinput(){echo-n"pleaseinputanumberbetween0000-9999:"readINPUTecho$INPUT|grep^[0-9]{4}$>/dev/null2>&1if[$?!=0]thenecho"retryanumberbetween0000-9999anddonotinputachar"inputelsejudgefi}#Thisfuntionisthemainfuntionjudge(){X=$INPUTY=$PASSWORDwhile[$INPUT!=$PASSWORD]doA=0B=0judge_ajudge_bLOOP=`expr$LOOP+1`echo"****************************"echo"*"$A"A"$B"B*"echo"****************************"inputdone}#ThisfuntioncountthevariableAsvaluejudge_a(){foriin`seq4`doVAR_INPUT=`exprsubstr"$X"$i1`forjin`seq4`doVAR_PASSWORD=`exprsubstr"$Y"$j1`if[[$VAR_INPUT=$VAR_PASSWORD&&$VAR_INPUT!=""&&$VAR_PASSWORD!=""&&$i=$j]]thenA=`expr$A+1`X=`exprsubstr$X1"$[$i-1]"``exprsubstr$X"$[$i+1]"4`Y=`exprsubstr$Y1"$[$i-1]"``exprsubstr$Y"$[$i+1]"4`judge_afidonedone}#ThisfuntioncountthevariableBsvaluejudge_b(){foriin`seq4`doVAR_INPUT=`exprsubstr"$X"$i1`forjin`seq4`doVAR_PASSWORD=`exprsubstr"$Y"$j1`if[[$VAR_INPUT=$VAR_PASSWORD&&$VAR_INPUT!=""&&$VAR_PASSWORD!=""]]thenB=`expr$B+1`X=`exprsubstr"$X"1"$[$i-1]"``exprsubstr"$X""$[$i+1]"4`Y=`exprsubstr"$Y"1"$[$j-1]"``exprsubstr"$Y""$[$j+1]"4`judge_bfidonedone}#ThisisthebeginofscriptLOOP=1init_passwordecho"#############################################"echo"#congratulations!Youhavetried$LOOPtimes!#"echo"#Thepasswordis$PASSWORD!#"echo"#############################################"
复制代码

如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
海妖 该用户已被删除
沙发
发表于 2015-1-15 08:20:44 | 只看该作者

来一发shell小游戏 猜数字

利用工具方信息不对称,很多国外地摊货到zg都变成了奢侈品,那zg有啥垃圾牌子在国外冒充高档货?
简单生活 该用户已被删除
板凳
发表于 2015-1-21 20:50:34 | 只看该作者
在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。
冷月葬花魂 该用户已被删除
地板
发表于 2015-1-30 22:39:56 | 只看该作者
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
若天明 该用户已被删除
5#
发表于 2015-2-17 17:48:27 | 只看该作者
熟读Linux系统有关知识,如系统目录树,有关内容可购书阅读或搜索论坛。
蒙在股里 该用户已被删除
6#
发表于 2015-3-5 22:49:06 | 只看该作者
Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
再见西城 该用户已被删除
7#
发表于 2015-3-12 16:43:05 | 只看该作者
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
若相依 该用户已被删除
8#
发表于 2015-3-20 01:31:13 | 只看该作者
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 14:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表