shell实现猜数字小游戏
本文实例为大家分享了shell实现猜数字游戏的具体代码,供大家参考,具体内容如下
#!/bin/bash #猜数字编程游戏 #系统随机生成一个数字,给这个数字定一个范围(1-60),让用户输入猜的数字,对输入进行判断,如果不符合要求,就给予高或低的提示。其他要求: #全部猜对后则给出猜对使用用的总次数。 #根据猜的历史给出击败了百分之多少的已经猜过的用户。 #并把关键的内容(高低以及数字部分)以特殊颜色提示用户。 #生成一个1到60之间的随机数 number_range=$((RANDOM%60)) login(){ read-p'请输入游戏昵称:'name if[-z"$name"];then echo-e"\033[1;31m昵称不允许为空\033[0m" exit1 fi } #检查输入是否合法,含有非数字、为空、大于60小于1都属于非法行为 check_number(){ if[-z"$number"-o$(echo"$number"|egrep-o'[^0-9]'|wc-l)-gt1];then echo-e"\033[1;31m请不要输入非数字字符\033[0m" continue elif[-z"$number"];then echo-e"\033[1;32m请不要输入空字符\033[0m" else if["$number"-lt1-o"$number"-gt60];then echo-e"\033[1;31m请输入一个1到60之间的数字\033[0m" continue fi fi } #提示输入和正确答案大小比对 prompt(){ if["$number"-lt"$number_range"];then echo-e"\033[1;34m你猜的数字太小了\033[0m" elif["$number"-gt"$number_range"];then echo-e"\033[1;35m你猜的数字太大了\033[0m" elif["$number"-eq"$number_range"];then echo-e"\033[1;36m恭喜你猜对了\033[0m" echo-e"\033[1;31m一共使用了$count次机会\033[0m" echo"$name$count">>Game_history check_beat fi } #判断击败了多少历史玩家 check_beat(){ beat_count=0 forhistoryin$(awk'{print$2}'Game_history) do total=$(expr$(catGame_history|wc-l)-1) if["$total"-eq0];then echo-e"\033[1;32m您是本游戏的第一位用户哦\033[0m" exit1 else if["$count"-lt"$history"];then letbeat_count++ fi fi done echo|awk-vbeat_count=$beat_count-vtotal=$total'{printf"您一共击败了%.2f%%的历史玩家\n",beat_count/total*100}' exit1 } #主菜单 menu(){ login count=0 while: do read-p'请输入一个1到60之间的数字:'number letcount++ check_number prompt done } menu
小编再为大家分享一段:shell实现猜数字游戏的代码
#/********************************* #>FileName:guessgame.sh #>Author:liyong #>Mail:2550702985@qq.com #>CreatedTime:2017-03-2201:57 #>Lastmodified:2017-03-2201:57 randNum=$(date+%s%N) letluckNum=${randNum:0-1:1} echo$luckNum letnum=luckNum+1 while[$luckNum-ne$num];do read-p'Pleaseinputanum:'num #expr当num为0结果非0,故不能作为数字判断的标准 #expr$num+0&>/dev/null||{echo'请输入数字';exit2;} echo$num|grep-E'^[[:digit:]]+$'&>/dev/null||{echo'请输入数字 ';exit2;} if[$luckNum-eq$num];then echo'Congratulates'; exit; elif[$luckNum-gt$num];then echo'Thenumyouinputissmaller' else echo'Thenumyouinputisbigger' fi done
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。