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

微软网站开发wordpress5.2添加外链

微软网站开发,wordpress5.2添加外链,wordpress 多层边栏,企业做网站建设的好处Python实战案例:猜拳小游戏 文章目录 Python实战案例:猜拳小游戏一、案例背景二、代码实现三、代码解析3.1 执行过程3.2 流程图 四、案例总结1. 核心知识点运用2. 编程思维提升 一、案例背景 猜拳游戏(石头剪刀布)是一款规则简单…

Python实战案例:猜拳小游戏


文章目录

  • Python实战案例:猜拳小游戏
    • 一、案例背景
    • 二、代码实现
    • 三、代码解析
      • 3.1 执行过程
      • 3.2 流程图
    • 四、案例总结
      • 1. 核心知识点运用
      • 2. 编程思维提升


一、案例背景

猜拳游戏(石头剪刀布)是一款规则简单却极具策略性的经典对决游戏,几乎人人都能快速上手。
对于编程学习者而言,通过实现这一游戏,能够深度理解条件判断循环控制数据结构等核心编程概念,同时锻炼逻辑思维与代码调试能力。
本文将从基础规则出发,逐步完成一个具备输入验证、胜负判定、战绩统计的完整猜拳小游戏案例。

游戏规则
游戏中双方需在 石头、剪刀、布 三种手势中选择其一,胜负判定规则如下:

  1. 石头剪刀 (石头砸坏剪刀)
  2. 剪刀 (剪刀剪碎布)
  3. 石头 (布包裹石头)
  4. 若双方手势相同,则判定为 平局

通过将现实规则转化为代码逻辑,可以锻炼我们将抽象生活场景转换为程序模型的能力。
接下来,让我们看看如何用Python代码模拟实现猜拳小游戏。


二、代码实现

本案例代码需要使用random模块相关方法, 所以需先导入模块。

import random# 游戏初始化
# 定义游戏规则:键代表玩家选择,值代表该选择能击败的对象
game_rules = {'石头': '剪刀', '剪刀': '布', '布': '石头'}
# 从游戏规则中提取所有可用的选择项
choices = list(game_rules.keys())
# 初始化历史战绩统计字典
history = {'赢': 0,  # 记录胜利次数'输': 0,  # 记录失败次数'平局': 0,  # 记录平局次数'回合数': 0,  # 记录总游戏回合数'胜率': '0%'  # 记录当前胜率
}
# 定义打印分隔线的格式
spec = '=^30'  # 格式(居中,宽度30,用=填充)# 打印游戏开始信息
print('\n欢迎来到猜拳小游戏.\n')
print(f"{'游戏开始':{spec}}\n")  # 使用定义好的格式打印"游戏开始"
print("当前第1回合".center(30, '-'))  # 使用字符串格式化方法打印当前回合数# 主游戏循环
while True:# 获取用户输入# strip()去除首尾空格,lower()转换为小写user_select = input('请输入你的选择--石头/剪刀/布(输入Q退出): ').strip().lower()# 检查用户是否选择退出if user_select == 'q':      # 使用定义好的格式打印"游戏退出"print(f"\n{'游戏退出':{spec}}")# 打印历史战绩print(f"历史战绩: 回合数 {history['回合数']} | 胜利 {history['赢']} |"f" 失败 {history['输']} | 平局 {history['平局']} | 胜率 {history['胜率']}\n")break  # 退出游戏循环   # 验证用户输入是否有效if user_select not in choices:print('选择输入错误,请重新输入(输入Q退出)')continue  # 跳过当前循环,重新获取输入# 电脑随机选择一个选项pc_select = random.choice(choices)# 判断游戏结果# 平局情况if user_select == pc_select:history['平局'] += 1  # 平局次数加1print(f'\n平局! 你:{user_select} vs 电脑:{pc_select}')else:# 获胜情况:检查玩家的选择是否能击败电脑的选择if game_rules[user_select] == pc_select:history['赢'] += 1  # 胜利次数加1print(f'\n你赢了! 你:{user_select} 击败 电脑:{pc_select}')else:# 失败情况history['输'] += 1  # 失败次数加1print(f'\n你输了! 电脑:{pc_select} 击败 你:{user_select}')# 更新回合数history['回合数'] += 1# 计算并更新胜率(避免除以零的错误)if history['回合数'] > 0:# 计算胜率winning_rate = history['赢'] / history['回合数']# 将胜率转换为百分比格式字符串history['胜率'] = f"{winning_rate:.1%}"# 打印当前战绩print(f"当前战绩:胜利 {history['赢']} | 失败 {history['输']} |"f" 平局 {history['平局']} | 胜率 {history['胜率']}\n")# 使用定义好的格式打印"游戏继续"print(f"{'游戏继续':{spec}}\n")# 使用字符串格式化方法打印当前回合数print(f"当前第{history['回合数'] + 1}回合".center(30, '-'))  

三、代码解析

3.1 执行过程

  1. 游戏初始化

    • 定义游戏规则字典game_rules,明确石头克剪刀、剪刀克布、布克石头。
    • 从规则中提取所有可用选择(石头、剪刀、布)存入choices列表。
    • 初始化历史战绩字典history,记录胜负平次数、回合数和胜率。
    • 设置打印格式spec用于美化输出。
    • 打印游戏开始信息和当前回合数(第1回合)。
  2. 主游戏循环

    • 通过while True创建无限循环,直到用户主动退出。
    • 获取用户输入并处理:
      • 去除输入首尾空格并转为小写。
      • 若输入为q,则打印游戏退出信息和完整历史战绩,然后终止循环。
      • 若输入无效(不在选择列表中),提示错误并继续循环。
  3. 游戏逻辑处理

    • 电脑从choices中随机选择一项。
    • 判断游戏结果:
      • 若用户和电脑选择相同,记录平局。
      • 否则根据game_rules判断胜负:用户选择能击败电脑选择则获胜,否则失败。
    • 更新历史战绩:
      • 增加相应的胜负平次数。
      • 更新总回合数。
      • 计算并更新胜率(格式化为百分比,保留1位小数)。
  4. 结果展示与循环

    • 打印当前回合结果(胜/负/平)。
    • 显示当前战绩统计。
    • 打印游戏继续信息和下一回合编号,继续循环。

3.2 流程图


四、案例总结

1. 核心知识点运用

  • 基础语法:条件判断(if-elif-else)、循环(while)、输入输出(input/print)。
  • 数据结构:字典(存储规则和战绩)、列表(存储合法手势)。
  • 实用技巧:字符串格式化、随机数生成(random.choice)、输入验证逻辑。

2. 编程思维提升

  • 抽象能力:将现实规则(石头剪刀布克制关系)转化为代码可处理的字典结构。
  • 健壮性设计:通过输入验证和异常处理(如避免除零错误)提升程序稳定性。
  • 交互式设计:合理使用分隔线和实时反馈,增强交互友好性。

通过本案例,我们可清晰看到如何从简单规则逐步构建功能完整的程序,该案例适合作为Python入门的实战练手项目。
在编程学习中,实现经典小游戏是掌握基础语法和逻辑思维的最佳方式。快来动手尝试自己实现代码功能,体验编程与游戏结合的乐趣吧!



关注「安于欣」获取更多Python技巧

http://www.dtcms.com/a/402077.html

相关文章:

  • 怎么做刷赞网站娄底网站建设开发
  • 佛山网站建设网络公司网站开发询价表模板下载
  • 公司的网站建设费应该怎么入账国内时事新闻2021最新
  • 网站开发是先做前段还是后台永湖网站建设
  • 民间it网站建设安阳区号码
  • 公司做网站大概多少钱凡客是什么意思
  • 南城做网站游戏合作渠道
  • 建公司网站建设明细报价表wordpress友情链接插件
  • 开启wordpress多站点开封旅游网站建设方案策划书
  • 建俄语网站哪个公司最好网站建设合同要交印花吗
  • 合肥网站优化排名推广建站系统是什么
  • 专做公司网站 大庆网站建设泽宇
  • 做淘宝优惠网站郑州论坛官网
  • 罗庄区住房和城乡建设局网站南宁手机网站建设
  • 公司网站注册要多少钱唐山路南网站建设
  • 网站建设先进部门评选标准婚庆网站大全
  • wordpress建淘宝客网站教程长沙一键建站系统
  • 网站弹出窗口代码客户关系管理的重要性
  • 建设网站需申请什么资料WordPress中文章固定链接
  • 网站技术支持什么意思用什么软件做网站模板
  • 浙江国有建设用地出让网站新浪微博登录网页版
  • 中国建设银行网站缴费系统营销型网站是啥
  • 南昌网站建设有哪几家四川省建设厅消防网站
  • 建设工程施工合同最新版本网站建设优化服务策划
  • 徐州城乡建设招投标网站小制作小发明论文
  • 百度站长工具大全网站不收录的解决办法
  • 关于网站建设的论文题目网站开发 软文
  • 网站建设管理策划书怎么用flash做网站
  • 企业网站建设方案优化网站推广方案设计方案
  • 建设厅网站2015154合肥生态丽景网站建设