這里是參考
10.28第一次培訓作業數字大爆炸-kkinn
在師兄師姐的教導下,我完成了第一個python小游戲-數字大爆炸
主要運用:for回圈 以及if 的判斷
10,30:這個有點小問題,就是炸彈會變化,其他好像也算還可以,畢竟是自己的第一個小游戲,也不知道怎么改,那當他是炸彈變變變的數字大爆炸吧,
又重新打了個新的真正符合游戲規則的數字大爆炸放在新的博客了,
由于jupter的斷線,以及之前的習慣,暫用spyder來演示(等我慢慢習慣用jupter,會改的哈哈哈)
下面來分享我的制作程序以及思路:
根據游戲規則:機器自動在范圍內選取一個數,若與玩家輸入的相同,則玩家獲勝結束;若不一樣,玩家輸入的數字+1將成為新的范圍數界,機器在其范圍內再次選擇一個數,直至相等
下面是最開始自己根據師兄寫出來的代碼圖:
優化1.0版本:

代碼與師兄類似,但在判斷那沒有完全按照師兄的思路,沒有多添加一個machine_num,而是直接修改rd的范圍,再用rd來判斷比較,并且每次輸入都有范圍變化的提醒,我覺得稍微簡略方便了點,
算是大功告成了吧,自己玩了下,能玩,但很快發現了新的問題:
由于習慣性手抖,經常數字打到大于范圍外面去,直接擴大了范圍,又得重新縮小范圍,感覺一直手抖可以一直玩哈哈哈,
繼續優化思路如下:
在原本if內繼續使用if來進行套娃:
超出范圍時,不進行范圍的更改,并且提醒玩家不在范圍內,要重新輸入,
在范圍內,再執行范圍的更改,于是代碼變復雜了,但更人性化了:
優化2.0:

最后想統計自己到底跟電腦玩了多少把,于是設定一個引數,在每次范圍變化時引數都+1,最后統計出來,于是有了最終版:
優化3.0:

最后運行結果如下:

分享下最后代碼吧:
import random
rd = random.randint(1, 1000)
min=1
max=1000
count= 0
for i in range(1,1000):
num = int(input('your-num:'))
if num<rd:
if num<min:
fanwei=(min,max)
print(f'小于范圍了,范圍是{fanwei},重新輸入吧')
else:
min = num +1
rd = random.randint(min, max)
fanwei=(min,max)
print(f'范圍是{fanwei}')
count = count+1
elif num>rd:
if num>=max:
fanwei=(min,max)
print(f'超過范圍了,范圍是{fanwei}重新輸入吧')
else:
max = num -1
rd = random.randint(min, max)
fanwei=(min,max)
print(f'范圍是{fanwei}')
count = count+1
else:
print("\nCongratulate!!!you win the game!",end="")
break
count1 = count+1
print(f"\n但居然蠢到跟電腦玩了{count1}次!remake吧")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/197062.html
標籤:python
