当前位置: 首页 > ai >正文

Python猜拳“小”游戏

猜拳小游戏想必大家都玩过,它起源于中国汉代,后传入日本并发展成现代形式。在东亚文化中,猜拳常用于解决争议或娱乐。日本称为“じゃんけん”,韩国称为“가위바위보”,西方称为“Rock-Paper-Scissors”。

今天我想介绍几种Python实现猜拳小游戏的方法: if-else , random 模块,for循环,while循环

  .       

方式一:使用 if-else 条件语句


电脑的出拳方式的生成通过计算得到,而算法只能模拟出随机数的一部分特点,因此可能存在一定的问题。

注意,这个程序中只会执行一次猜拳游戏→

# 定义常量
ROCK = 1
PAPER = 2
SCISSORS = 3# 输出欢迎信息
print("欢迎来到猜拳游戏!")
print("游戏规则:")
print("1. 石头胜剪刀")
print("2. 剪刀胜布")
print("3. 布胜石头")# 定义得分变量
player_score = 0
computer_score = 0
tie_count = 0# 让玩家输入出拳方式
player_choice = int(input("请输入您的出拳方式(1:石头,2:剪刀,3:布):"))# 判断玩家的选择
if player_choice == ROCK:print("你出了石头")
elif player_choice == PAPER:print("你出了剪刀")
else:print("你出了布")# 生成电脑的出拳方式(运用算法)
computer_choice = ((player_score + computer_score + tie_count) % 3) + 1# 输出电脑的选择
if computer_choice == ROCK:print("电脑出了石头")
elif computer_choice == PAPER:print("电脑出了剪刀")
else:print("电脑出了布")# 判断输赢并输出结果
if player_choice == ROCK:if computer_choice == ROCK:print("平局")tie_count += 1elif computer_choice == PAPER:print("电脑获胜")computer_score += 1else:print("你获胜")player_score += 1
elif player_choice == PAPER:if computer_choice == ROCK:print("你获胜")player_score += 1elif computer_choice == PAPER:print("平局")tie_count += 1else:print("电脑获胜")computer_score += 1
else:if computer_choice == ROCK:print("电脑获胜")computer_score += 1elif computer_choice == PAPER:print("你获胜")player_score += 1else:print("平局")tie_count += 1# 输出得分情况
print(f"您的得分:{player_score},电脑的得分:{computer_score},平局次数:{tie_count}")

方式1-1:random模块+👆

通过random模块生成电脑的选择,再与用户输入进行比较,利用条件判断输出结果。

import randomdef rock_paper_scissors():choices = ['石头', '剪刀', '布']computer_choice = random.choice(choices)user_choice = input("请输入你的选择(石头/剪刀/布): ").strip()if user_choice not in choices:print("输入无效,请重新输入!")returnprint(f"电脑选择了: {computer_choice}")if user_choice == computer_choice:print("平局!")elif (user_choice == '石头' and computer_choice == '剪刀') or \(user_choice == '剪刀' and computer_choice == '布') or \(user_choice == '布' and computer_choice == '石头'):print("你赢了!")else:print("你输了!")rock_paper_scissors()



 方式二:使用for循坏

使用random模块生成电脑的选择 + for循环(有固定轮数)

此代码我命令它执行3次👇

也可自行添加 input,输入

import randomchoices = ["石头", "剪刀", "布"]
rounds = 3  # 设置游戏轮数for i in range(rounds):print(f"\n第 {i+1} 轮:")player_choice = input("请输入你的选择(石头/剪刀/布): ").strip()if player_choice not in choices:print("输入无效,请重新选择!")continuecomputer_choice = random.choice(choices)print(f"电脑选择: {computer_choice}")if player_choice == computer_choice:print("平局!")elif (player_choice == "石头" and computer_choice == "剪刀") or \(player_choice == "剪刀" and computer_choice == "布") or \(player_choice == "布" and computer_choice == "石头"):print("你赢了!")else:print("你输了!")



 方式三:使用while循环

可以选择是否继续游戏,玩无数次!

更加灵活  nice~~~

import randomchoices = ["石头", "剪刀", "布"]
play_again = Truewhile play_again:player_choice = input("\n请输入你的选择(石头/剪刀/布): ").strip()if player_choice not in choices:print("输入无效,请重新选择!")continuecomputer_choice = random.choice(choices)print(f"电脑选择: {computer_choice}")if player_choice == computer_choice:print("平局!")elif (player_choice == "石头" and computer_choice == "剪刀") or \(player_choice == "剪刀" and computer_choice == "布") or \(player_choice == "布" and computer_choice == "石头"):print("你赢了!")else:print("你输了!")# 询问是否继续游戏response = input("是否继续游戏?(是/否): ").strip().lower()play_again = response == "是"



悄悄告诉你:

尽管猜拳看似随机,但部分玩家会尝试预测对手行为:

  • 新手倾向重复上一轮的手势。
  • 输家可能下意识更换手势。
  • 统计表明,石头是最常见的初始选择。
  • 嘿嘿🤭
http://www.xdnf.cn/news/8609.html

相关文章:

  • 动态IP:像变色龙一样自由切换网络身份
  • 【编程语言】【C语言】一篇文件构建C语言知识体系
  • 神经算子与FNO技术详解
  • 几种环境下的Postgres数据库安装
  • docker commit除了提交容器成镜像,还能搞什么之修改cmd命令
  • 全面指南:使用Node.js和Python连接与操作MongoDB
  • 汉字不仅是一种语言 还是当作艺术形式来展现
  • 基于Springboot + vue3实现的中国戏曲文化传播系统
  • Linux环境变量与地址空间
  • 冰箱热交换的原理以及如何加氟
  • 超越OpenAI CodeX的软件工程智能体:Jules
  • Axure元件动作六:设置图片
  • 高分辨率北半球多年冻土数据集(2000-2016)
  • 科学计算中的深度学习模型精解:CNN、U-Net 和 Diffusion Models
  • 【KWDB 创作者计划】KWDB单机性能测试:从零开始的详细教程
  • 前端项目部署 打包上线
  • 人脸美颜磨皮祛痘1:数据集说明(含下载链接)
  • LangGraph:人工干预与自动化结合
  • 使用workvisual对库卡机器人进行程序备份
  • 86. Java 数字和字符串 - 数字
  • Doris ClickHouse Greenplum 对比
  • 6.3.2图的深度优先遍历
  • 跨模态行人检索方法综述(上)
  • 使用YouDDNS-Docker为飞牛NAS配置YouDDNS动态域名解析
  • 如何选用正确的html元素
  • 2025年渗透测试面试题总结-匿名[社招]安全工程师(中级红队)(题目+回答)
  • 《Python语言程序设计》第4章第8题3个个位数之间比大小。‘a小于b而b大于c’这是最有漏洞的一个对比,请问我如何判断a和c
  • DeepSeek智能对话助手项目
  • 对神经正切核的理解和推导(1)
  • MRI大型数据集FastMRI介绍