shell腳本實(shí)現(xiàn)猜數(shù)游戲
用shell腳本寫一個(gè)猜數(shù)游戲
最近用shell寫的一個(gè)猜數(shù)游戲,包括4個(gè)不同難度,腳本如下:
#作者:p_小王 echo '歡迎來(lái)到猜數(shù)游戲!' 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 '請(qǐng)選擇難度' #難度選擇 echo ' 1.簡(jiǎn)單' echo ' 2.一般' echo ' 3.困難' echo ' 4.地獄' echo ' 5.返回' echo '' read -p '請(qǐng)輸入對(duì)應(yīng)序號(hào):' y #提示用戶輸入 if [ -z $y ] #判斷用戶輸入為空 then echo '不能為空' #提示 echo '' continue elif [ $y = 1 ] #判斷用戶輸入‘1'簡(jiǎn)單 then while true do num=$[RANDOM%100+1] #隨機(jī)生成100以內(nèi)的數(shù) echo '猜一個(gè)1-100的數(shù)' n=0 #定義變量 while true do read -p '請(qǐng)輸入:' a #提示用戶輸入 let n++ #計(jì)次數(shù) if [ -z $a ] #判斷用戶輸入為空 then echo '輸入不能為空!' #提示 continue elif [ -n "`echo $a | sed 's#[0-9]##g'`" ] #判斷用戶輸入非數(shù)字 then echo '請(qǐng)輸入1-100之間的數(shù)!' #提示 continue elif [ $a -lt 1 ] || [ $a -gt 100 ] #判斷用戶輸入的數(shù)在1-100之間 then echo '請(qǐng)輸入1-100之間的數(shù)!' #提示 continue elif [ $a -gt $num ] #判斷用戶輸入的數(shù)大于隨機(jī)生成的數(shù) then echo '猜大了,再猜!' #提示 continue elif [ $a -lt $num ] #判斷用戶輸入的數(shù)小于隨機(jī)生成的數(shù) then echo '猜小了,再猜!' #提示 continue else echo '恭喜你猜對(duì)了,正確數(shù)字是'$num #提示用戶猜對(duì)了 echo '猜了' $n '次' #顯示猜的次數(shù) echo '' sleep 1s #延遲1s echo '是否再來(lái)一局?' #提示是否再玩 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] #隨機(jī)生成1000以內(nèi)的數(shù) echo '猜一個(gè)1-1000的數(shù)' #提示 n=0 #定義變量 while true do read -p '請(qǐng)輸入:' a #提示用戶輸入 let n++ #記次數(shù) if [ -z $a ] #判斷用戶輸入 then echo '輸入不能為空!' #提示 continue elif [ -n "`echo $a | sed 's#[0-9]##g'`" ] #判斷用戶輸入非數(shù)字 then echo '請(qǐng)輸入1-1000之間的數(shù)!' #提示 continue elif [ $a -lt 1 ] || [ $a -gt 1000 ] #判斷用戶輸入的在1-1000之間 then echo '請(qǐng)輸入1-1000之間的數(shù)!' #提示 continue elif [ $a -gt $num ] then echo '猜大了,再猜!' #提示 continue elif [ $a -lt $num ] then echo '猜小了,再猜!' #提示 continue else echo '恭喜你猜對(duì)了,正確數(shù)字是'$num #提示用戶猜對(duì)了 echo '猜了' $n '次' #顯示猜的次數(shù) echo '' sleep 1s #延遲1s echo '是否再來(lái)一局?' #提示是否繼續(xù)玩 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] #隨機(jī)生成10000以內(nèi)的數(shù) echo '猜一個(gè)1-10000的數(shù)' #提示 n=0 #定義變量 while true do read -p '請(qǐng)輸入:' a #提示用戶輸入 let n++ #記次數(shù) if [ -z $a ] #判斷用戶輸入為空 then echo '輸入不能為空!' #提示 continue elif [ -n "`echo $a | sed 's#[0-9]##g'`" ] #判斷用戶輸入非數(shù)字 then echo '請(qǐng)輸入1-10000之間的數(shù)!' #提示 continue elif [ $a -lt 1 ] || [ $a -gt 10000 ] #判斷用戶輸入是否在1-10000之間 then echo '請(qǐng)輸入1-10000之間的數(shù)!' #提示 continue elif [ $a -gt $num ] #判斷輸入的數(shù)大于隨機(jī)生成數(shù) then echo '猜大了,再猜!' #提示 continue elif [ $a -lt $num ] #判斷輸入的數(shù)小于隨機(jī)生成數(shù) then echo '猜小了,再猜!' #提示 continue else echo '恭喜你猜對(duì)了,正確數(shù)字是'$num #提示用戶猜對(duì)了 echo '猜了' $n '次' #提示 echo '' sleep 1s #延遲1s echo '是否再來(lái)一局?' #提示是否繼續(xù)玩 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] #隨機(jī)生成100000以內(nèi)的數(shù) echo '猜一個(gè)1-100000的數(shù)' #提示 n=0 #定義變量 while true do read -p '請(qǐng)輸入:' a #提示用戶輸入 let n++ #記次數(shù) if [ -z $a ] #判斷用戶輸入為空 then echo '輸入不能為空!' #提示 continue elif [ -n "`echo $a | sed 's#[0-9]##g'`" ] #判斷用戶輸入非數(shù)字 then echo '請(qǐng)輸入1-100000之間的數(shù)!' #提示 continue elif [ $a -lt 1 ] || [ $a -gt 100000 ] #判斷用戶輸入1-100000之間 then echo '請(qǐng)輸入1-100000之間的數(shù)!' #提示 continue elif [ $a -gt $num ] #判斷輸入的數(shù)大于隨機(jī)生成數(shù) then echo '猜大了,再猜!' #提示 continue elif [ $a -lt $num ] #判斷輸入的數(shù)小于隨機(jī)生成數(shù) then echo '猜小了,再猜!' #提示 continue else echo '恭喜你猜對(duì)了,正確數(shù)字是'$num #提示用戶猜對(duì)了 echo '猜了' $n '次' #顯示猜的次數(shù) echo '' sleep 1s #延遲1s echo '是否再來(lái)一局?' #提示是否繼續(xù)玩 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 #結(jié)束腳本 else #判斷用戶輸入其他 echo '輸入有誤' #提示 echo '' continue fi done
備注:本人已經(jīng)測(cè)試過(guò)了,未測(cè)出bug
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
檢測(cè)網(wǎng)站down掉后自動(dòng)發(fā)信的shell腳本代碼
腳本用途:檢測(cè)指定文件中的網(wǎng)站url,當(dāng)一個(gè)網(wǎng)站down掉后,自動(dòng)給指定的郵箱發(fā)信2013-02-02shell腳本實(shí)現(xiàn)linux系統(tǒng)文件完整性檢測(cè)
這篇文章主要介紹了shell腳本實(shí)現(xiàn)linux系統(tǒng)文件完整性檢測(cè),本文給出的腳本使用對(duì)比MD5的方法,檢測(cè)linux系統(tǒng)文件是否被替換等問(wèn)題,需要的朋友可以參考下2014-12-12shell 備份數(shù)據(jù)庫(kù)、代碼上線的腳本
Shell 是一個(gè)用 C 語(yǔ)言編寫的程序,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語(yǔ)言,又是一種程序設(shè)計(jì)語(yǔ)言。這篇文章主要介紹了shell腳本之備份數(shù)據(jù)庫(kù)、代碼上線,需要的朋友可以參考下2020-02-02解決linux?shell中傳遞包含空格的參數(shù)問(wèn)題
這篇文章主要介紹了如何解決linux?shell中傳遞包含空格的參數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09幾個(gè)常用的Linux操作系統(tǒng)監(jiān)控腳本代碼
本文介紹了幾個(gè)常用的Linux監(jiān)控腳本,可以實(shí)現(xiàn)主機(jī)網(wǎng)卡流量、系統(tǒng)狀況、主機(jī)磁盤空間、CPU和內(nèi)存的使用情況等方面的自動(dòng)監(jiān)控與報(bào)警。根據(jù)自己的需求寫出的shell腳本更能滿足需求,更能細(xì)化主機(jī)監(jiān)控的全面性2013-07-07