亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

詢問用戶他/她是否想再玩一次但輸入是只是再次重復這個問題而不是重新開始

詢問用戶他/她是否想再玩一次但輸入是只是再次重復這個問題而不是重新開始

交互式愛情 2023-04-18 16:05:17
這是一個數字猜謎游戲解釋首先它要求用戶輸入一個介于 1 到 50 之間的數字然后如果數字是正確的那么你贏了否則你必須再試一次(中獎號碼是隨機的)你也有有限的猜測問題在代碼下面提到 這是我的代碼:)import randomwinning_num = 23guesses = 1guesses_left = 9game_over = Falseend_game = Falsenumber_enter = Falsewhile not end_game:        while not number_enter:        try:            ask = int(input("ENTER A NUMBER BETWEEN 1 AND 50: "))            print(f"TOTAL GUESSES = {guesses_left}")            break        except ValueError:            print("INVALID INPUT!!")            continue    while not game_over:         if ask==winning_num:            print(f"YOU WON BY GUESSING THE NUMBER IN {guesses} TIME(S)!!")            print("DO YOU WANT TO PLAY AGAIN?")            while True:                ask1 = input("ENTER 'YES' OR 'NO' ONLY: ")                ask1 = ask1.lower()                if ask1=='yes':                    print("YOU CHOSE TO PLAY AGAIN")                    game_over = False                    break                elif ask1=="no":                    print("THANK YOU FOR PLAYING THIS GAME")                    game_over = True                    end_game = True                    break                else:                    print("PLEASE WRITE 'YES' OR 'NO' ONLY ")                    continue                    elif ask>winning_num:            print("TOO HIGH!!")            guesses+=1            guesses_left-=1            while True:                try:                    ask = int(input("TRY AGAIN: "))                    print(f"GUESSES LEFT = {guesses_left}")                    break                except ValueError:                    print("INVALID INPUT!!")                    continue            if guesses_left==1:                print("ONLY ONE GUESS LEFT!!")                continue            elif guesses_left==0:                print("YOU LOSE!!")                break    問題是游戲何時結束它詢問我們是否要再次玩但是如果我們再次鍵入“是”它會詢問相同的“你想再次玩嗎”但是鍵入“否”可以正常運行并且程序結束
查看完整描述

3 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

你必須設置 game_over = False 以防 ask1 = yes 以便它可以從父 while 循環中出來并繼續。此外,您必須重新設置猜測次數等,以便它作為新游戲開始。



查看完整回答
反對 回復 2023-04-18
?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

import random

winning_num = 23

guesses = 1

guesses_left = 9

game_over = False

end_game = False

number_enter = False

while not end_game:    

    while not number_enter:

        try:

            ask = int(input("ENTER A NUMBER BETWEEN 1 AND 50: "))

            print(f"TOTAL GUESSES = {guesses_left}")

            break

        except ValueError:

            print("INVALID INPUT!!")

            continue

    while not game_over: 

        if ask==winning_num:

            print(f"YOU WON BY GUESSING THE NUMBER IN {guesses} TIME(S)!!")

            print("DO YOU WANT TO PLAY AGAIN?")

            while True:

                ask1 = input("ENTER 'YES' OR 'NO' ONLY: ")

                ask1 = ask1.lower()

                if ask1=='yes':

                    print("YOU CHOSE TO PLAY AGAIN")

                    game_over = True

                    break

                elif ask1=="no":

                    print("THANK YOU FOR PLAYING THIS GAME")

                    game_over = True

                    end_game = True

                    break

                else:

                    print("PLEASE WRITE 'YES' OR 'NO' ONLY ")

                    continue

        


        elif ask>winning_num:

            print("TOO HIGH!!")

            guesses+=1

            guesses_left-=1

            while True:

                try:

                    ask = int(input("TRY AGAIN: "))

                    print(f"GUESSES LEFT = {guesses_left}")

                    break

                except ValueError:

                    print("INVALID INPUT!!")

                    continue

            if guesses_left==1:

                print("ONLY ONE GUESS LEFT!!")

                continue

            elif guesses_left==0:

                print("YOU LOSE!!")

                break

        elif ask<winning_num:

             print("TOO LOW!!")

             guesses+=1

             guesses_left-=1

             while True:

                 try:

                     ask = int(input("TRY AGAIN: "))

                     print(f"GUESSES LEFT = {guesses_left}")

                     break

                 except ValueError:

                     print("INVALID INPUT!!")

                     continue

             if guesses_left==1:

                 print("ONLY ONE GUESS LEFT!!")

                 continue

             elif guesses_left==0:

                 print("YOU LOSE!!")

                 break


查看完整回答
反對 回復 2023-04-18
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

您錯誤地切換了 game_over,它應該設置為True,而不是False如果重播的答案是肯定的。


while not end_game:  # End game must be false to replay

    while not number_enter:

        #... ask number

    while not game_over: # But Game_over should be True to stop asking to replay

        #... Check number good

        #... Ask to replay

        while True:

            ask1 = input("ENTER 'YES' OR 'NO' ONLY: ")

            ask1 = ask1.lower()

            if ask1=='yes':

                print("YOU CHOSE TO PLAY AGAIN")

                game_over = True  # <<<< Thats the problematic part, it must be True

                                  #      in your code it is False, So it result in

                                  #      an "infinite" loop, if yes.

                break


查看完整回答
反對 回復 2023-04-18
  • 3 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號