python實現(xiàn)數(shù)字炸彈游戲程序
相信許多小伙伴都玩過數(shù)字炸彈游戲,就是指在一定數(shù)字范圍(一般是整數(shù),不包含邊界)里,一個玩家選中一個數(shù)字當作炸彈,其余玩家在這個范圍猜數(shù)字,每次只要沒猜中炸彈數(shù)字,則根據(jù)玩家猜的數(shù)字縮小范圍,直至其中一個玩家猜中炸彈數(shù)字,游戲結束。
在這里,我們可以嘗試用Python編程的思想來拆解游戲過程(純屬無聊),核心主要為以下兩個問題:
(1)數(shù)字炸彈的產(chǎn)生
(2)如何縮小范圍
第一個問題很簡單,可以使用random模塊隨機生成,需要注意的是數(shù)字炸彈不包含邊界,randint函數(shù)可以生成指定范圍的整數(shù),但包含邊界,所以需要做一下處理。本人是采用循環(huán)的方法,將生成的不符合要求的數(shù)字炸彈過濾掉;第二個問題是更為核心的問題,不斷縮小范圍,我們?nèi)菀紫氲接脀hile循環(huán),最后猜中數(shù)字break跳出循環(huán),游戲結束。
import random def user_num(): num = int(input('請輸入你的數(shù)字:\n')) return num def max_num(): max_num = int(input('請輸入最高數(shù)字:\n')) return max_num def min_num(): min_num = int(input('請輸入起始數(shù)字:\n')) return min_num min_num,max_num = min_num(),max_num() while True: res = random.randint(min_num,max_num)#res可能會包括兩端數(shù)字,需剔除 if res!=min_num and res!=max_num: break f = [min_num,max_num] #核心代碼 def comp(a,b): if a>b: f[1] = a else: f[0] = a print('游戲繼續(xù),范圍{}到{},請再次輸入'.format(f[0],f[1])) flag = 0 while True: num = user_num() if num not in range(f[0],f[1]): print('不在范圍內(nèi),請重新輸入') continue elif num!=res: comp(num,res) elif num==res: print("你猜中啦,游戲結束!") break flag += 1 print("你一共猜了%d次"%flag)
核心代碼那里我定義了一個比較函數(shù),用來更替范圍的兩端,這樣就可實現(xiàn)縮小猜數(shù)范圍。代碼還可以繼續(xù)完善,不過本人還是菜鳥,光想這個問題二就想了不少時間。
更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
python 阿里云oss實現(xiàn)直傳簽名與回調(diào)驗證的示例方法
這篇文章主要介紹了python 阿里云oss實現(xiàn)直傳簽名與回調(diào)驗證,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03淺談Python2之漢字編碼為unicode的問題(即類似\xc3\xa4)
今天小編就為大家分享一篇淺談Python2之漢字編碼為unicode的問題(即類似\xc3\xa4),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08