-前言-
嗨大家,好久不見了~
距離上次更新也好一陣子了,主要是因為筆者最近正逢換工作的困擾,
比較沒有那麼多的時間可以更新,還請大家見諒
不知道大家最近過得如何?先祝大家一切順利囉!
p.s 也希望我可以快點找到下一份工作囉~
-------------------------------------------------------------------------------------
今天要跟大家分享的是用python做的猜數字遊戲~
我想大家小時候應該都有玩過猜數字吧?(是不是不小心透漏了年齡...)
就是0A2B,1A3B的那種。還記得那時,絞盡腦汁想要猜到對方的答案,
每次猜題前的那種緊張,猜題後的驚訝,到現在都還是念念不忘阿。
過了這麼久,大家也都長大了,3C發展也都成熟了,自然沒有人在玩猜數字了。
不過別擔心,就算沒有人陪你玩,你還有電腦可以陪你玩!(誤
廢話不多說,先附上程式碼給大家參考:
import random
gs=0 #遊戲狀態,0=開始遊戲,1=遊戲中,2=通關
times=0 #猜的次數
while gs ==0:
print('歡迎來到猜數字遊戲!')
choice=input('請選擇動作(1:聽取說明,2:開始遊戲):')
if choice == '1':
print('電腦會隨機設定一組四位數數字作為謎底,由你來猜。每猜一次,電腦就會根據你猜的數字給出提示,提示以XAYB形式呈現,')
print('直到猜中為止。其中X表示位置正確的數的個數,而Y表示數字正確而位置不對的數的個數。例如,當謎底為2546,而猜謎者猜1052時,')
print('電腦就會給出提示0A2B。')
print('準備好了嗎?遊戲開始囉!')
gs=1
times=0
elif choice =='2':
print('準備好了嗎?遊戲開始囉!')
gs=1
times=0
else:
print('輸入錯誤,請重新輸入!')
continue
#此區為重置答案--------------------------------------------------------------------------------------
n=random.sample([0,1,2,3,4,5,6,7,8,9],4)#random.sample([a,b,c,d],2) 代表從a,b,c,d中任意抓取兩個字且不重複
a=str(n[0])
b=str(n[1])
c=str(n[2])
d=str(n[3]) #運用str 將取得的數字轉換成字串
ans=a+b+c+d #將上述分別取出的數字連接起來
#---------------------------------------------------------------------------------------------------
while gs ==1:
guess=input('請輸入任意不重複的四位數:')
x=set(guess)
if len(x) <4:
print('你輸入的並非四位數或有重複!')
continue
elif guess =='給我答案':
print(ans)
elif guess==ans:
times+=1
print(str(guess)+'----------4A0B')
print('你贏了!')
print('總共猜了'+str(times)+'次!')
gs=2
else:
y=0 #判斷式預設值
xa=0 #答案預設值
xb=0 #答案預設值
times+=1
while y <4:
if guess[y] in ans:
if guess[y] == ans[y]:
xa+=1
else:
xb+=1
y+=1
print(guess+'----------'+str(xa)+'A'+str(xb)+'B')
while gs ==2:
choice=input('請選擇動作(1:再來一局,2:離開遊戲):')
if choice == '1':
gs=0
elif choice == '2':
gs=3
else:
print('輸入錯誤,請重新輸入!')
執行成果如下:
這篇算是適合初學者看的,只要能簡單理解迴圈,變數,整數及字串的轉換,就可以做出像這樣的簡單小遊戲。
這篇先附上程式碼及檔案給大家參考練習,程式碼也都有註解說明,若有任何問題歡迎在底下留言討論哦。
只要我懂的話,我都會盡量回答的!(畢竟我也是初學者呀哈哈~
python 猜數字下載:https://drive.google.com/file/d/1_SF5bdwku0WsyMDZlGnSxgS2gP8esr1O/view?usp=sharing
今天就先到這邊~謝謝大家觀看!
文章標籤
全站熱搜