Python 3石头剪刀布游戏开发:胜负统计与AI策略实现
嘿,作为Python新手要做这个带策略的石头剪刀布游戏是吧?我给你写了个完整的可运行实现,完全满足你的所有要求,代码里加了详细注释,你跟着看很快就能搞懂~
石头剪刀布游戏(Python 3)
下面是完整代码,包含用户行为统计、电脑智能策略和最终结果汇总:
import random def main(): # 初始化统计数据 user_wins = 0 computer_wins = 0 ties = 0 user_choices = {"Rock": 0, "Paper": 0, "Scissors": 0} # 定义克制关系:key是武器,value是能击败它的武器 beat_map = {"Rock": "Paper", "Paper": "Scissors", "Scissors": "Rock"} print("欢迎来到石头剪刀布游戏!输入 Rock/Paper/Scissors 开始,输入 quit 结束游戏") while True: # 获取用户输入并统一格式 user_input = input("请选择你的武器:").strip().capitalize() # 处理退出指令 if user_input in ["Quit", "Exit"]: break # 检查输入合法性 if user_input not in user_choices: print("无效输入,请输入 Rock、Paper、Scissors 或者 quit 退出") continue # 更新用户选择统计 user_choices[user_input] += 1 # 电脑选择策略:优先选用户最常用武器的克制武器,次数相同则随机 most_used_count = max(user_choices.values()) # 找出所有使用次数等于最大值的武器 frequent_choices = [choice for choice, count in user_choices.items() if count == most_used_count] if len(frequent_choices) > 1: # 多个武器使用次数相同,随机选一个 target_choice = random.choice(frequent_choices) else: target_choice = frequent_choices[0] # 选克制目标武器的选项 computer_choice = beat_map[target_choice] # 判断胜负并输出回合结果 print(f"电脑选择了:{computer_choice}") if user_input == computer_choice: print("平局!") ties += 1 elif beat_map[user_input] == computer_choice: print("电脑获胜!") computer_wins += 1 else: print("你获胜了!") user_wins += 1 # 游戏结束,输出完整统计结果 print("\n=== 游戏结束 ===") print(f"电脑获胜回合数:{computer_wins}") print(f"用户获胜回合数:{user_wins}") print(f"平局回合数:{ties}") print("\n你的武器选择统计:") for choice, count in user_choices.items(): print(f"- {choice}:{count} 次") if __name__ == "__main__": main()
关键功能拆解
- 智能电脑策略:
电脑会实时统计你每次选的武器,找出你用得最多的那一种,直接选能克制它的武器(比如你最爱出Rock,电脑就一直出Paper)。如果有多种武器你用的次数一样(比如游戏刚开始的时候),电脑就随机选,避免一开始就有固定规律。 - 输入容错处理:
不管你输入小写、大写还是混合大小写(比如rock、ROCK),程序都能识别;如果输错了,会提示你重新输入。 - 完整统计输出:
游戏结束后会清晰展示胜负平的次数,还有你每种武器的使用次数,完全符合你的要求。
使用提示
运行代码后,按提示输入武器就行,不想玩了输入quit或者exit就会结束游戏并显示统计结果。
内容的提问来源于stack exchange,提问作者Astik
相关产品推荐
相关产品推荐

