You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:48:28