0514-86177077
9:00-17:00(工作日)
用shell腳本寫一個猜數游戲
最近用shell寫的一個猜數游戲,包括4個不同難度,腳本如下:
#作者:p_小王 echo '歡迎來到猜數游戲!' while true do read -p '開始/退出(y/n):' x #提示用戶輸入 if [ -z $x ] #判斷用戶輸入為空 then echo '不能為空' #提示 echo '' continue elif [ $x = y ] #判斷用戶輸入‘y' then echo '' echo '游戲即將開始' echo '' while true do sleep 1s #延遲1s echo '請選擇難度' #難度選擇 echo ' 1.簡單' echo ' 2.一般' echo ' 3.困難' echo ' 4.地獄' echo ' 5.返回' echo '' read -p '請輸入對應序號:' y #提示用戶輸入 if [ -z $y ] #判斷用戶輸入為空 then echo '不能為空' #提示 echo '' continue elif [ $y = 1 ] #判斷用戶輸入‘1'簡單 then while true do num=$[RANDOM%100+1] #隨機生成100以內的數 echo '猜一個1-100的數' n=0 #定義變量 while true do read -p '請輸入:' a #提示用戶輸入 let n++ #計次數 if [ -z $a ] #判斷用戶輸入為空 then echo '輸入不能為空!' #提示 continue elif [ -n "`echo $a | sed 's#[0-9]##g'`" ] #判斷用戶輸入非數字 then echo '請輸入1-100之間的數!' #提示 continue elif [ $a -lt 1 ] || [ $a -gt 100 ] #判斷用戶輸入的數在1-100之間 then echo '請輸入1-100之間的數!' #提示 continue elif [ $a -gt $num ] #判斷用戶輸入的數大于隨機生成的數 then echo '猜大了,再猜!' #提示 continue elif [ $a -lt $num ] #判斷用戶輸入的數小于隨機生成的數 then echo '猜小了,再猜!' #提示 continue else echo '恭喜你猜對了,正確數字是'$num #提示用戶猜對了 echo '猜了' $n '次' #顯示猜的次數 echo '' sleep 1s #延遲1s echo '是否再來一局?' #提示是否再玩 while true do read -p 'y/n:' i #提示用戶輸入 if [ -z $i ] #判斷用戶輸入為空 then echo '不能為空' #提示 echo '' continue elif [ $i = y ] #判斷用戶輸入‘y' then break 2 elif [ $i = n ] #判斷用戶輸入‘n' then break 3 else echo '輸入有誤' #提示 echo '' continue fi done fi done done elif [ $y = 2 ] #判斷用戶輸入‘2'一般 then while true do num=$[RANDOM%1000+1] #隨機生成1000以內的數 echo '猜一個1-1000的數' #提示 n=0 #定義變量 while true do read -p '請輸入:' a #提示用戶輸入 let n++ #記次數 if [ -z $a ] #判斷用戶輸入 then echo '輸入不能為空!' #提示 continue elif [ -n "`echo $a | sed 's#[0-9]##g'`" ] #判斷用戶輸入非數字 then echo '請輸入1-1000之間的數!' #提示 continue elif [ $a -lt 1 ] || [ $a -gt 1000 ] #判斷用戶輸入的在1-1000之間 then echo '請輸入1-1000之間的數!' #提示 continue elif [ $a -gt $num ] then echo '猜大了,再猜!' #提示 continue elif [ $a -lt $num ] then echo '猜小了,再猜!' #提示 continue else echo '恭喜你猜對了,正確數字是'$num #提示用戶猜對了 echo '猜了' $n '次' #顯示猜的次數 echo '' sleep 1s #延遲1s echo '是否再來一局?' #提示是否繼續玩 while true do read -p 'y/n:' i #提示用戶輸入 if [ -z $i ] #判斷用戶輸入為空 then echo '不能為空' #提示 echo '' continue elif [ $i = y ] #判斷用戶輸入‘y' then break 2 elif [ $i = n ] #判斷用戶輸入‘n' then break 3 else echo '輸入有誤' #提示 echo '' continue fi done fi done done elif [ $y = 3 ] #判斷用戶輸入‘3'困難 then while true do num=$[RANDOM%10000+1] #隨機生成10000以內的數 echo '猜一個1-10000的數' #提示 n=0 #定義變量 while true do read -p '請輸入:' a #提示用戶輸入 let n++ #記次數 if [ -z $a ] #判斷用戶輸入為空 then echo '輸入不能為空!' #提示 continue elif [ -n "`echo $a | sed 's#[0-9]##g'`" ] #判斷用戶輸入非數字 then echo '請輸入1-10000之間的數!' #提示 continue elif [ $a -lt 1 ] || [ $a -gt 10000 ] #判斷用戶輸入是否在1-10000之間 then echo '請輸入1-10000之間的數!' #提示 continue elif [ $a -gt $num ] #判斷輸入的數大于隨機生成數 then echo '猜大了,再猜!' #提示 continue elif [ $a -lt $num ] #判斷輸入的數小于隨機生成數 then echo '猜小了,再猜!' #提示 continue else echo '恭喜你猜對了,正確數字是'$num #提示用戶猜對了 echo '猜了' $n '次' #提示 echo '' sleep 1s #延遲1s echo '是否再來一局?' #提示是否繼續玩 while true do read -p 'y/n:' i #提示用戶輸入 if [ -z $i ] #判斷用戶輸入為空 then echo '不能為空' #提示 echo '' continue elif [ $i = y ] #判斷用戶輸入‘y' then break 2 elif [ $i = n ] #判斷用戶輸入‘n' then break 3 else echo '輸入有誤' #提示 echo '' continue fi done fi done done elif [ $y = 4 ] #判斷用戶輸入‘4'地獄 then while true do num=$[RANDOM%100000+1] #隨機生成100000以內的數 echo '猜一個1-100000的數' #提示 n=0 #定義變量 while true do read -p '請輸入:' a #提示用戶輸入 let n++ #記次數 if [ -z $a ] #判斷用戶輸入為空 then echo '輸入不能為空!' #提示 continue elif [ -n "`echo $a | sed 's#[0-9]##g'`" ] #判斷用戶輸入非數字 then echo '請輸入1-100000之間的數!' #提示 continue elif [ $a -lt 1 ] || [ $a -gt 100000 ] #判斷用戶輸入1-100000之間 then echo '請輸入1-100000之間的數!' #提示 continue elif [ $a -gt $num ] #判斷輸入的數大于隨機生成數 then echo '猜大了,再猜!' #提示 continue elif [ $a -lt $num ] #判斷輸入的數小于隨機生成數 then echo '猜小了,再猜!' #提示 continue else echo '恭喜你猜對了,正確數字是'$num #提示用戶猜對了 echo '猜了' $n '次' #顯示猜的次數 echo '' sleep 1s #延遲1s echo '是否再來一局?' #提示是否繼續玩 while true do read -p 'y/n:' i #提示用戶輸入 if [ -z $i ] #判斷用戶輸入為空 then echo '不能為空' #提示 echo '' continue elif [ $i = y ] #判斷用戶輸入‘y' then break 2 elif [ $i = n ] #判斷用戶輸入‘n' then break 3 else echo '輸入有誤' #提示 echo '' continue fi done fi done done elif [ $y = 5 ] #判斷用戶選擇返回 then echo '' break #返回 else #判斷用戶輸入其他 echo '輸入有誤' #提示 echo '' continue fi done elif [ $x = n ] #判斷用戶輸入‘n'退出 then echo '游戲即將退出' #提示 echo '' sleep 1s echo '退出成功!' #提示 echo '' exit 0 #結束腳本 else #判斷用戶輸入其他 echo '輸入有誤' #提示 echo '' continue fi done
備注:本人已經測試過了,未測出bug
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
標簽:黔南 黔南 淮南 河北 通遼 隴南 河池 常州
上一篇:Shell實現猜數字游戲
下一篇:Shell腳本實現猜數字游戲
Copyright ? 1999-2012 誠信 合法 規范的巨人網絡通訊始建于2005年
蘇ICP備15040257號-8