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-基础-入门 简介
Aug 09 Python
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
flask中主动抛出异常及统一异常处理代码示例
Jan 18 Python
Python Pandas找到缺失值的位置方法
Apr 12 Python
python之super的使用小结
Aug 13 Python
在Python中字典根据多项规则排序的方法
Jan 21 Python
python re库的正则表达式入门学习教程
Mar 08 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
10行Python代码计算汽车数量的实现方法
Oct 23 Python
Python FtpLib模块应用操作详解
Dec 12 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
Feb 29 Python
Python如何解除一个装饰器
Aug 07 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生成静态页的实现方法
2013/05/10 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
Vue中的Props(不可变状态)
2018/09/29 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
python实现根据图标提取分类应用程序实例
2014/09/28 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
Python实现线程状态监测简单示例
2018/03/28 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
秋季运动会表扬稿
2014/01/16 职场文书
可口可乐广告词
2014/03/20 职场文书
小班幼儿评语大全
2014/04/30 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
为Centos安装指定版本的Docker
2022/04/01 Servers