python實(shí)現(xiàn)數(shù)字炸彈游戲程序
相信許多小伙伴都玩過(guò)數(shù)字炸彈游戲,就是指在一定數(shù)字范圍(一般是整數(shù),不包含邊界)里,一個(gè)玩家選中一個(gè)數(shù)字當(dāng)作炸彈,其余玩家在這個(gè)范圍猜數(shù)字,每次只要沒(méi)猜中炸彈數(shù)字,則根據(jù)玩家猜的數(shù)字縮小范圍,直至其中一個(gè)玩家猜中炸彈數(shù)字,游戲結(jié)束。
在這里,我們可以嘗試用Python編程的思想來(lái)拆解游戲過(guò)程(純屬無(wú)聊),核心主要為以下兩個(gè)問(wèn)題:
(1)數(shù)字炸彈的產(chǎn)生
(2)如何縮小范圍
第一個(gè)問(wèn)題很簡(jiǎn)單,可以使用random模塊隨機(jī)生成,需要注意的是數(shù)字炸彈不包含邊界,randint函數(shù)可以生成指定范圍的整數(shù),但包含邊界,所以需要做一下處理。本人是采用循環(huán)的方法,將生成的不符合要求的數(shù)字炸彈過(guò)濾掉;第二個(gè)問(wèn)題是更為核心的問(wèn)題,不斷縮小范圍,我們?nèi)菀紫氲接脀hile循環(huán),最后猜中數(shù)字break跳出循環(huán),游戲結(jié)束。
import random
def user_num():
num = int(input('請(qǐng)輸入你的數(shù)字:\n'))
return num
def max_num():
max_num = int(input('請(qǐng)輸入最高數(shù)字:\n'))
return max_num
def min_num():
min_num = int(input('請(qǐng)輸入起始數(shù)字:\n'))
return min_num
min_num,max_num = min_num(),max_num()
while True:
res = random.randint(min_num,max_num)#res可能會(huì)包括兩端數(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ù),范圍{}到{},請(qǐng)?jiān)俅屋斎?.format(f[0],f[1]))
flag = 0
while True:
num = user_num()
if num not in range(f[0],f[1]):
print('不在范圍內(nèi),請(qǐng)重新輸入')
continue
elif num!=res:
comp(num,res)
elif num==res:
print("你猜中啦,游戲結(jié)束!")
break
flag += 1
print("你一共猜了%d次"%flag)
核心代碼那里我定義了一個(gè)比較函數(shù),用來(lái)更替范圍的兩端,這樣就可實(shí)現(xiàn)縮小猜數(shù)范圍。代碼還可以繼續(xù)完善,不過(guò)本人還是菜鳥,光想這個(gè)問(wèn)題二就想了不少時(shí)間。

更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解python百行有效代碼實(shí)現(xiàn)漢諾塔小游戲(簡(jiǎn)約版)
- python實(shí)現(xiàn)移動(dòng)木板小游戲
- python實(shí)現(xiàn)簡(jiǎn)單貪吃蛇游戲
- Python tkinter制作單機(jī)五子棋游戲
- Python中猜拳游戲與猜篩子游戲的實(shí)現(xiàn)方法
- python實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲
- python實(shí)現(xiàn)數(shù)字炸彈游戲
- python求解漢諾塔游戲
- Python使用tkinter實(shí)現(xiàn)搖骰子小游戲功能的代碼
- python實(shí)現(xiàn)猜數(shù)游戲(保存游戲記錄)
- python 實(shí)現(xiàn)"神經(jīng)衰弱"翻牌游戲
相關(guān)文章
使用Gitee自動(dòng)化部署python腳本的詳細(xì)過(guò)程
小編最近在自學(xué)python,在學(xué)習(xí)過(guò)程中有好多意向不到的收獲,真的很開心,今天重點(diǎn)給大家分享使用Gitee自動(dòng)化部署python腳本的詳細(xì)過(guò)程,包括安裝環(huán)境搭建及一些注意事項(xiàng),感興趣的朋友跟隨小編一起看看吧2021-05-05
Python?pass函數(shù)使用及其應(yīng)用的詳解
Python中,pass是一種空語(yǔ)句,即不做任何事情,只起到占位符的作用,本文主要介紹了Python?pass函數(shù)使用及其應(yīng)用的詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Python中的支持向量機(jī)SVM的使用(附實(shí)例代碼)
這篇文章主要介紹了Python中的支持向量機(jī)SVM的使用(附實(shí)例代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
python 阿里云oss實(shí)現(xiàn)直傳簽名與回調(diào)驗(yàn)證的示例方法
這篇文章主要介紹了python 阿里云oss實(shí)現(xiàn)直傳簽名與回調(diào)驗(yàn)證,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Python中工廠模式的實(shí)現(xiàn)小結(jié)
工廠模式是一種創(chuàng)建型設(shè)計(jì)模式,通過(guò)定義一個(gè)工廠類,將對(duì)象的實(shí)例化過(guò)程封裝起來(lái),本文主要介紹了Python中工廠模式的實(shí)現(xiàn)小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
淺談Python2之漢字編碼為unicode的問(wèn)題(即類似\xc3\xa4)
今天小編就為大家分享一篇淺談Python2之漢字編碼為unicode的問(wèn)題(即類似\xc3\xa4),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
Python實(shí)現(xiàn)地圖可視化folium完整過(guò)程
Folium是一個(gè)基于leaflet.js的Python地圖庫(kù),其中,Leaflet是一個(gè)非常輕的前端地圖可視化庫(kù),本文重點(diǎn)給大家介紹Python實(shí)現(xiàn)地圖可視化folium完整過(guò)程,感興趣的朋友跟隨小編一起看看吧2021-05-05

