|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
欢迎大家来到仓酷云论坛!天生的暗码和用户输出能够承受反复数字
以是绝对一样平常划定规矩的猜数字大概难度要年夜很多
本版本划定规矩:
A--数字对,地位也对
B--扫除A的了局后,数字对,但地位不合错误
入手下手后,体系化初始化一个4位可反复数字,如“1223”。假定用户第一次输出“1234”,那末体系将提醒“2A1B”,前两位数字“12”不异而且地位也不异,为“2A”。后两位数字中,用户输出的“3”与密文中“3”不异,但二者地位分歧,则为“1B”,终极了局为“2A1B”。
再假定用户此时输出“1232”,那末了局则为“2A2B”,盘算***与上次一样。
代码以下- #!/bin/bashclearechoecho"###################################################################"echo"#thisisabash-shellgamewritebyEmail:breeze7086@gmail.com#"echo"#thegamecalled*digits*,andthisversionhaverepeatednumbers#"echo"#version1.0#"echo"###################################################################"echo-e"
- "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教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们! |
|