为了账号安全,请及时绑定邮箱和手机立即绑定

初学者python游戏:掷骰子,while循环问题

初学者python游戏:掷骰子,while循环问题

回首忆惘然 2022-10-06 19:12:23
我是编程新手,我的任务是制作一个掷骰子游戏。游戏继续进行,直到您在被要求再次玩时回答“否”。一旦你输入“否”,它应该显示你赢了和输了多少次。它工作得很好(不记分):import randomdef main():    playGame = input("Would you like to play Craps? (Enter yes or no): ")    while playGame == 'yes':        roll = input("Press Enter to roll the dice")        rollDice1 = random.randint(1, 6)        rollDice2 = random.randint(1, 6)        print("You got a", rollDice1, "and a", rollDice2)        rolledDice = rollDice1 + rollDice2        print("you rolled a", rolledDice)        if rolledDice == 7 or rolledDice == 11:            print("IT'S YOUR LUCKY DAY! YOU WIN!")        elif rolledDice == 2 or rolledDice == 3 or rolledDice == 12:            print("YOU LOSE! BETTER LUCK NEXT TIME!")        else:            print("YOU NEITHER WIN NOR LOSE!")        playGame = input("Try again? (Enter yes or no): ")        if playGame == "no":            print("Place holder")main()当我试图保持得分时,当你输赢时它不会循环。(虽然当你不赢也不输时它仍然循环):import randomdef main():    wins = 0    losses = 0    playGame = input("Would you like to play Craps? (Enter yes or no): ")    while playGame == 'yes':        roll = input("Press Enter to roll the dice")        rollDice1 = random.randint(1, 6)        rollDice2 = random.randint(1, 6)        print("You got a", rollDice1, "and a", rollDice2)        rolledDice = rollDice1 + rollDice2        print("you rolled a", rolledDice)        if rolledDice == 7 or rolledDice == 11:            print("IT'S YOUR LUCKY DAY! YOU WIN!")            wins = wins + 1            return wins        elif rolledDice == 2 or rolledDice == 3 or rolledDice == 12:            print("YOU LOSE! BETTER LUCK NEXT TIME!")            losses = losses + 1            return losses        else:            print("YOU NEITHER WIN NOR LOSE!")        playGame = input("Try again? (Enter yes or no): ")        if playGame == "no":            print("Wins: ", wins)            print("Losses: ", losses)main()我感谢提供的任何帮助和建议。就像我说的我是新手,所以请尝试以简单的方式解释什么是错的以及我应该做什么。
查看完整描述

1 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

如果您return从函数内部获得某些东西,则将其保留-这就是您的 while 循环不起作用的原因:

def main():

    wins = 0

    losses = 0


    playGame = input("Would you like to play Craps? (Enter yes or no): ")

    while playGame == 'yes':

        roll = input("Press Enter to roll the dice")

        rollDice1 = random.randint(1, 6)

        rollDice2 = random.randint(1, 6)

        print("You got a", rollDice1, "and a", rollDice2)

        rolledDice = rollDice1 + rollDice2

        print("you rolled a", rolledDice)

        if rolledDice == 7 or rolledDice == 11:

            print("IT'S YOUR LUCKY DAY! YOU WIN!")

            wins = wins + 1

            return wins   # EXITS main() - simply delete this row


        elif rolledDice == 2 or rolledDice == 3 or rolledDice == 12:

            print("YOU LOSE! BETTER LUCK NEXT TIME!")

            losses = losses + 1

            return losses # EXITS main() - simply delete this row


        else:

            print("YOU NEITHER WIN NOR LOSE!")


        playGame = input("Try again? (Enter yes or no): ")

        if playGame == "no":

            print("Wins: ", wins)

            print("Losses: ", losses)

             return  # add this to exit the function (could use break as well)

main()


查看完整回答
反对 回复 2022-10-06
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信