[問題] 函式遊戲若輸了,如何能再重玩已刪文

看板Python作者時間6年前 (2019/04/28 13:51), 6年前編輯推噓7(7012)
留言19則, 2人參與, 6年前最新討論串1/1
早先有發問,很感謝高手們的回覆,但因為不小心按到刪除,只好再重新問 不過因為有高手提供再重新玩的程式碼,但我有點不清楚擺放位置究竟放置哪裡 才能印出出若輸了,或玩完五次,跳出詢問是否有要再玩,若yes則重新遊戲。 以下是程式碼,我將重新遊戲的程式碼放置後面,但似乎不對,放前面好像印不 出我要的效果,所以能否請教怎麼放才對呢?? import time print('這是一個冒險的遊戲,你將闖過五個關卡,') print('每個關卡,你要報上通關密語。') def initiate(): print('報錯了,你會被吃掉;') print('報對了,你可以往下闖。') print('闖過五關,你會得到一個驚喜….' ) time.sleep(3) print('我們開始。') time.sleep(3) print('現在你進入了第一關….. 這關的密語是水果….. 請你選擇一個門…. 試試 運氣吧….. ') def password(): print("恭禧!!你過了這關!\n 下一關") print('現在你進入了第二關….. 這關的密語交通工具….. 請你選擇一個門… . 試試運氣吧….. ') def password0(): print("恭禧!!你過了這關!\n 下一關") print('現在你進入了第三關….. 這關的密語是親屬關係….. 請你選擇一個門 …. 試試運氣吧….. ') def password1(): print("恭禧!!你過了這關!\n 下一關") print('現在你進入了第四關….. 這關的密語是動物….. 請你選擇一個門…. 試試運氣吧….. ') def password2(): print("恭禧!!你過了這關!\n 下一關") print('現在你進入了第五關….. 這關的密語是成語….. 請你選擇一個門…. 試試運氣吧….. ') def password3(): print("恭禧!!你過了這關!\n 下一關") initiate() for i in range (5): given= int (input("你選的門(1-5)是:")) given= str(input("你輸入的通關密語是:")) if given=="西瓜": password() elif given=="汽車": password0() elif given=="父子": password1() elif given=="大象": password2() elif given=="七上八下": password3() else: print("啊~ 密語錯誤!怪獸來吃你了…." ) while True: playagain= input(" 請輸入yes or no:") if playagain=="no": print ("遊戲結束") break else: playagain=="yes" print("重新玩一次") -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.20.39 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1556430684.A.42A.html

04/28 14:01, 6年前 , 1F
用while true把initiate()的以下程式碼包起來,就
04/28 14:01, 1F

04/28 14:01, 6年前 , 2F
是把while true往上提。原理是將程式碼重複執行,
04/28 14:01, 2F

04/28 14:01, 6年前 , 3F
直到使用者輸入no為止。
04/28 14:01, 3F

04/28 14:02, 6年前 , 4F
跑不出來嗎?可以描述一下是印不出來什麼嗎?
04/28 14:02, 4F

04/28 14:14, 6年前 , 5F

04/28 14:15, 6年前 , 6F

04/28 14:16, 6年前 , 7F
你要的是這樣嗎?簡單寫了一下 door那邊還要再加判
04/28 14:16, 7F

04/28 14:16, 6年前 , 8F
斷式
04/28 14:16, 8F
謝謝Charlie大大,不過我照您上面的playagain的程式碼,卻出現continue not properly in loop?? ※ 編輯: qzxwec789 (223.140.20.39), 04/28/2019 14:24:58

04/28 14:31, 6年前 , 9F
那你用pass看看,我可能打錯,雖然我這邊沒報錯,
04/28 14:31, 9F

04/28 14:31, 6年前 , 10F
不過可能是pass,你試試看
04/28 14:31, 10F

04/28 14:34, 6年前 , 11F
或者是else刪掉也可以,我剛剛試else刪掉也可以
04/28 14:34, 11F

04/28 14:35, 6年前 , 12F
真的很感激Charlie大大,雖然我的程式還是無法運行, 可能是我擺放位置有誤,但還是非常感謝您的協助喔 ※ 編輯: qzxwec789 (223.140.20.39), 04/28/2019 15:13:52

04/28 15:34, 6年前 , 13F
無法運行?方便的話可以再貼上你的程式碼嗎 是報錯
04/28 15:34, 13F

04/28 15:34, 6年前 , 14F
嗎?
04/28 15:34, 14F
https://imgur.com/a/Yaidxjv 目前無法跳到詢問是否在玩一次,不知是否位置問題 ※ 編輯: qzxwec789 (223.140.20.39), 04/28/2019 15:57:55

04/28 16:06, 6年前 , 15F
playagain要放在while迴圈裡面 跟initiate對齊
04/28 16:06, 15F
謝謝lajji大大,我有把它對齊,但還是沒跳到請輸入yes or no 那行 ※ 編輯: qzxwec789 (223.140.20.39), 04/28/2019 16:15:50

04/28 16:16, 6年前 , 16F
同樓上大神,要縮排進去
04/28 16:16, 16F

04/28 16:18, 6年前 , 17F
你的else:那段要加break喔,不然答錯還是會在裡面
04/28 16:18, 17F

04/28 16:18, 6年前 , 18F
循環
04/28 16:18, 18F
謝謝大神們的指教,但還有一個問題是答yes 有否可能從 這是一個冒險的遊戲,你將闖過五個關卡, 每個關卡,你要報上通關密語。 報錯了,你會被吃掉; 報對了,你可以往下闖。 闖過五關,你會得到一個驚喜…. 我們開始。 感覺還少了甚麼QQ ※ 編輯: qzxwec789 (223.140.20.39), 04/28/2019 16:25:15 今天真的很感謝大神們的救援,後面我再自己多想想了,萬分感謝。 ※ 編輯: qzxwec789 (223.140.20.39), 04/28/2019 16:32:44

04/28 16:32, 6年前 , 19F
把前面兩句塞入def initiate即可~
04/28 16:32, 19F
文章代碼(AID): #1SnJzSGg (Python)
文章代碼(AID): #1SnJzSGg (Python)