-前言-

嗨大家,好久不見了~

距離上次更新也好一陣子了,主要是因為筆者最近正逢換工作的困擾,

比較沒有那麼多的時間可以更新,還請大家見諒

不知道大家最近過得如何?先祝大家一切順利囉!

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

今天就先到這邊~謝謝大家觀看!

arrow
arrow
    文章標籤
    python 初學者 猜數字
    全站熱搜
    創作者介紹
    創作者 黑羽 的頭像
    黑羽

    黑羽的小屋

    黑羽 發表在 痞客邦 留言(1) 人氣()