Blackjack游戏Python代码while循环重复输出输入提示问题修复
解决二十一点游戏中重复提示要牌的问题
你的代码在每次执行if和elif判断时都调用了input(),导致玩家每输入一次操作,控制台就会重复弹出提示语句。从你给出的控制台输出能看到,玩家输入y后,提示又重复出现了一次,这就是多次调用input造成的问题。
问题代码片段
while again: if input("Type 'y' to get another card, type 'n' to pass:") == "n": print(l_dealer_cards) again = False elif input("Type 'y' to get another card, type 'n' to pass:") == "y": player_cards() # 后续代码省略
修改方案
把input()的调用移到循环最开头,只获取一次用户的选择,再用这个选择值做判断,就能让提示只显示一次。
修改后的代码片段
while again: # 仅获取一次用户输入,避免重复弹出提示 choice = input("输入'y'要牌,输入'n'停牌:") if choice == "n": print(l_dealer_cards) again = False elif choice == "y": player_cards() # 后续代码省略
修改后控制台输出示例
你的手牌: [4, 9], 当前点数: 13 电脑的首张牌: 10 输入'y'要牌,输入'n'停牌:y 你的手牌: [4, 9, 10], 当前点数: 23 超过21点,你输了
内容的提问来源于stack exchange,提问作者Hsm Ste
相关产品推荐
相关产品推荐

