iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 15
0
自我挑戰組

不要太認真學 Python! 之 我又重新報名了系列 第 15

不要太認真學 Python! - Day 18

  • 分享至 

  • xImage
  •  

[前情提要]

今天持續幫自己的程式碼進化中,不過我覺得我應該還在撞牆中...
怎麼辦,今天感覺會持續撞牆,而且還不知道怎麼轉彎誒)遠目


然後,肯定超過時間的...
我今天的感覺就像小孩子拼積木一樣,拿到積木不知道怎麼拼在一起。

不多說先上程式碼吧!!
文字候補。

import random

print('歡迎進入猜數字遊戲,玩家們準備好了嗎?')

GuessGame = input('是否要進入遊戲?(YES/NO)')
if (GuessGame.lower() == "no"):
    exit()
elif (GuessGame.lower() == "yes"):
    print("遊戲正式開始!")
else:
    exit()
        
rang1 = int(input("請設定本局遊戲的最小值:"))
rang2 = int(input("請設定本局遊戲的最大值:"))
num = random.randint(rang1,rang2)
guess = "guess"
i = 0
while guess != num:
    i += 1
    guess = int(input("你猜數字多少:"))
    if guess == num:
        print("恭喜,你猜對了!") 
    elif guess < num:
        print("再大一點!!")
    else:
        print("再小一點!!")
print("你總共猜了%d" %i + "次"",快點再來一局吧!!!")

def GuessGame(xiamigame):
    xiamigame = input('是否要重新開始新的一局?(YES/NO)')
    GuessGame == True
    while (GuessGame == True):
        GuessGame = GuessGame(xiamigame)
xiamigame = input('是否要重新開始新的一局?(YES/NO)')

https://ithelp.ithome.com.tw/upload/images/20190920/20120423UfLirXPibf.jpg

https://ithelp.ithome.com.tw/upload/images/20190919/201204238noGU3Owme.jpg

每天都很慌張啊 ><'''''


上面那段程式碼是,我想要讓程式形成一個可以不斷循環開新局的遊戲。
昨天邦友建議用 while 來寫,今天嘗試了一下,是可以運行沒有錯,但是只有運行前半段而已。

https://ithelp.ithome.com.tw/upload/images/20190920/20120423wMxnNqrTrT.jpg

這真的讓我好困惑啊。

就像手中明明有積木,你也知道每個積木的名稱和特性,也有人作出示範品給你看,但是還是組不起來一樣。

我覺得這應該是初學者普遍遇到的問題吧?
以我自己為例:

我除了把程式語言比喻成積木一樣,我覺得也很像寫作文,肯定有起承轉合。
譬如:開頭要用什麼語法,中間該用什麼,最後要加什麼...
我現在就是處在不知道什麼時候該出現什麼什麼結構的概念。


總之,我最後把程式整理成這樣

import random

print('歡迎進入猜數字遊戲,玩家們準備好了嗎?')

GuessGame = input('是否要進入遊戲?(YES/NO)')
if (GuessGame.lower() == "no"):
    exit()
elif (GuessGame.lower() == "yes"):
    print("遊戲正式開始!")
else:
    exit()
        
rang1 = int(input("請設定本局遊戲的最小值:"))
rang2 = int(input("請設定本局遊戲的最大值:"))
num = random.randint(rang1,rang2)
guess = "guess"
i = 0
while guess != num:
    i += 1
    guess = int(input("你猜數字多少:"))
    if guess == num:
        print("恭喜,你猜對了!") 
    elif guess < num:
        print("再大一點!!")
    else:
        print("再小一點!!")
print("你總共猜了%d" %i + "次"",快點再來一局吧!!!")

def GuessGame(xiamigame):
    xiamigame = input('是否要重新開始新的一局?(YES/NO)')
    GuessGame == True
    while (GuessGame == True):
        GuessGame = GuessGame(xiamigame)
xiamigame = input('是否要重新開始新的一局?(YES/NO)')

看起來似乎還行,實際上根本沒有任何改變啊
https://ithelp.ithome.com.tw/upload/images/20190920/20120423P50Q7Xuue0.jpg

不過既然沒有改變,就該回到最源頭來思考,源頭就是自己基礎不紮實,要逐步逐步地加強。真的十分推薦不要照本宣科,不要看傳統教學影片起頭,因為看了也不知道怎麼可以運用在生活中,我覺得初學者可以先看看自己想要做出什麼小專案,從實作中再回過頭來看傳統教學影片補知識,然後觀察別人的怎麼做,默默的學起來。

回到正題,上面最終的程式碼,有兩個問題

  1. 我把遊戲全部放在 def 之中,但是依然沒有動作,我覺得是放的順序或有其他規定限制等等導致不能運行。

  2. 今天我才有更深刻的認知,自己真的對縮排有障礙,我不知道什麼時候該縮排,到底要縮多少。這些都會影響程式我知道,但是我真的還沒研究到那裡 囧

  3. 我選這個遊戲來製作是對的,因為裡面有很多地方可以思考和嘗試,像是我之後想要做的就是看看那個 YES/NO 選項,可以不要輸入完整的單字嗎?可以只寫 Y 之類的嗎?或是如果很不幸手殘輸入成其他東西的話,希望系統可以提示或者重啟新局。總之,這個遊戲有好多思考點,真的很不錯!!!

總之我還是要繼續翻教程,順便補前面最基本的一些知識,現在開始覺得地基真的不穩,要多努力才能蓋大樓啊 QAQQQ

https://ithelp.ithome.com.tw/upload/images/20190920/20120423E6L51mQrC4.jpg

對自己的成果不滿意...
淚目收工。


不要太認真學 Python! - Day 17


上一篇
不要太認真學 Python! - Day 17
下一篇
不要太認真學 Python! - Day 19
系列文
不要太認真學 Python! 之 我又重新報名了31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1

笑死... 這什麼持續進化的方向啦 !!

  • 你的 遊戲全部放在 def 之中 應該要像下面這樣啦!
def GuessGame():
    rang1 = int(input("請設定本局遊戲的最小值:"))
    rang2 = int(input("請設定本局遊戲的最大值:"))
    num = random.randint(rang1,rang2)
    guess = "guess"
    i = 0
    while guess != num:
        i += 1
        guess = int(input("你猜數字多少:"))
        if guess == num:
            print("恭喜,你猜對了!") 
        elif guess < num:
            print("再大一點!!")
        else:
            print("再小一點!!")
    print("你總共猜了%d" %i + "次"",快點再來一局吧!!!")
  • 然後再用一個while看看要不要重新玩
while(1):
    xiamigame = input('是否要重新開始新的一局?(YES/NO)')
    if (xiamigame.lower() == "no"):
        break # <- 要用exit()也可以
    elif (xiamigame.lower() == "yes"):
        print("遊戲開始!")
        GuessGame() # <- 這行呼叫它
  • 另外,你的GuessGame重複命名了,系統不知道GuessGame到底是"yes/no"還是那個"def"

我要留言

立即登入留言