Python使用random模块实现掷骰子游戏的示例代码


Posted in Python onApril 29, 2021

引入内容

根据人民邮电出版社出版的《Python程序设计现代设计方法》P102习题中的第7题——掷骰子游戏,进行代码编写。

题目要求

一盘游戏中,两人轮流掷骰子5次,并将每次掷出的点数累加,5局之后,累计点数较大者获胜,点数相同则为平局。根据此规则实现掷骰子游戏,并算出50盘之后的胜利者( 50盘中嬴得盘数最多的,即最终胜利者)。

审题: 共有50盘游戏。一盘游戏有5局,每一局双方各掷骰子一次,5局结束以后统计分数,分数高的一方获胜。至此,一盘游戏结束。50盘游戏结束后,赢得盘数最多的一方为最终胜利者。

编写开始

↓↓↓开始奇妙Python之旅吧!↓↓↓

模块的导入以及初始变量的定义

统一声明变量,便于后续的管理和使用。

import random  #导入模块
# ↓↓↓ 定义初始变量
a =0  # 用来记录人物A掷投掷的结果
b =0  # 用来记录人物B掷投掷的结果
level_score =0  # 用来记录双方平局次数
score_A =0  # 人物A的每小局胜利次数
score_B =0  # 人物B的每小局胜利次数

开始比赛过程

本处用了for … in range(50)循环模拟进行50盘游戏。并在循环内嵌套新的for … in …range(5)作为每盘游戏中进行5次过程的模拟

for x in range(50):  # 进行50盘比赛
    for n in range(5):  # 模拟双方每盘摇5次骰子
        person_A =random.randint(1,6)  # 使用random模块的randit进行1~6模拟摇骰子的过程
        a +=person_A  # 将投掷结果保存

        person_B =random.randint(1,6)# 使用random模块的randit进行1~6模拟摇骰子的过程
        b +=person_B  # 将投掷结果保存
    if a>b:  # 比较双方投掷结果总和,将比较结果保存至本场比赛最终结果
        score_A+=1
    elif a<b:
        score_B+=1
    else:
        level_score+=1
    a =0  # 重置双方分数,并进入下一轮循环
    b =0  # 重置双方分数,并进入下一轮循环
    # 此处如果不重置分数,本次投掷结果将会进入下一次循环,有悖题目要求和比赛公平性。

比赛结束以后统计结果

前面我们对每盘游戏进行了模拟,现在我们要书写题目最后的要求的代码。
因为前面用了score_A和score_B作为用来记录每盘游戏结束的变量,所以此处我们只需要对之前的变量进行大小比较即可。

if score_A>score_B:  # 比较最终结果,游戏结束
    print(f'本次比赛A胜,A总分为:{score_A},B总分为:{score_B},比赛期间平局次数为:{level_score}')
elif score_A<score_B:
    print(f'本次比赛B胜,A总分为:{score_A},B总分为:{score_B},比赛期间平局次数为:{level_score}')
else:
    print(f'本次比赛平局,双方总分:A{score_A} vs B{score_B},比赛期间平局次数为:{level_score}')

完整代码

import random  #导入模块
# ↓↓↓ 定义初始变量
a =0  # 用来记录人物A掷投掷的结果
b =0  # 用来记录人物B掷投掷的结果
level_score =0  # 用来记录双方平局次数
score_A =0  # 人物A的每小局胜利次数
score_B =0  # 人物B的每小局胜利次数

for x in range(50):  # 进行50盘比赛
    for n in range(5):  # 模拟双方每盘摇5次骰子
        person_A =random.randint(1,6)  # 使用random模块的randit进行1~6模拟摇骰子的过程
        a +=person_A  # 将投掷结果保存

        person_B =random.randint(1,6)# 使用random模块的randit进行1~6模拟摇骰子的过程
        b +=person_B  # 将投掷结果保存
    if a>b:  # 比较5局以后双方投掷结果总和,将比较结果保存至本场比赛最终结果
        score_A+=1 # A本盘获胜
    elif a<b: # B本盘获胜
        score_B+=1
    else:
        level_score+=1
    a =0  # 重置双方分数,并进入下一轮循环
    b =0  # 重置双方分数,并进入下一轮循环
    # 此处如果不重置分数,本次投掷结果将会进入下一次循环,有悖题目要求和比赛公平性。

if score_A>score_B:  # 比较最终结果,游戏结束
    print(f'本次比赛A胜,A总分为:{score_A},B总分为:{score_B},比赛期间平局次数为:{level_score}')
elif score_A<score_B:
    print(f'本次比赛B胜,A总分为:{score_A},B总分为:{score_B},比赛期间平局次数为:{level_score}')
else:
    print(f'本次比赛平局,双方总分:A{score_A} vs B{score_B},比赛期间平局次数为:{level_score}')

到此这篇关于Python使用random模块实现掷骰子游戏的示例代码的文章就介绍到这了,更多相关Python random掷骰子内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的一些用法分享
Oct 07 Python
python从ftp下载数据保存实例
Nov 20 Python
Python探索之ModelForm代码详解
Oct 26 Python
神经网络理论基础及Python实现详解
Dec 15 Python
python实现图片文件批量重命名
Mar 23 Python
python定时关机小脚本
Jun 20 Python
python 从csv读数据到mysql的实例
Jun 21 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
Python&amp;&amp;GDAL实现NDVI的计算方式
Jan 09 Python
python实现PCA降维的示例详解
Feb 24 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
python中requests库+xpath+lxml简单使用
python实现进度条的多种实现
教你如何使用Python下载B站视频的详细教程
Python+uiautomator2实现自动刷抖音视频功能
Django项目如何正确配置日志(logging)
Apr 29 #Python
django上传文件的三种方式
Apr 29 #Python
详解Django的MVT设计模式
You might like
php下使用SimpleXML 处理XML 文件
2010/02/27 PHP
实用的简单PHP分页集合包括使用方法
2013/10/21 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
JS中input表单隐藏域及其使用方法
2017/02/13 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
详解Angular 4 表单快速入门
2017/06/05 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
python数组循环处理方法
2019/08/26 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
如何理解python中数字列表
2020/05/29 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
Unix如何添加新的用户
2014/08/20 面试题
一套Delphi的笔试题一
2016/02/14 面试题
教师评优的个人自我评价分享
2013/09/19 职场文书
信息管理专业推荐信
2013/10/29 职场文书
家长会主持词
2014/03/26 职场文书
护士求职信
2014/07/05 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
使用python绘制横竖条形图
2022/04/21 Python