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实现udp数据报传输的方法
Sep 26 Python
使用Python编写一个最基础的代码解释器的要点解析
Jul 12 Python
Python 中 list 的各项操作技巧
Apr 13 Python
Python实现读取并保存文件的类
May 11 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
把csv文件转化为数组及数组的切片方法
Jul 04 Python
python中logging模块的一些简单用法的使用
Feb 22 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
基于python-pptx库中文文档及使用详解
Feb 14 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 Python
python基于OpenCV模板匹配识别图片中的数字
Mar 31 Python
python中requests库+xpath+lxml简单使用
python实现进度条的多种实现
教你如何使用Python下载B站视频的详细教程
Python+uiautomator2实现自动刷抖音视频功能
Django项目如何正确配置日志(logging)
Apr 29 #Python
django上传文件的三种方式
Apr 29 #Python
详解Django的MVT设计模式
You might like
BBS(php &amp; mysql)完整版(三)
2006/10/09 PHP
ThinkPHP模型详解
2015/07/27 PHP
php cli配置文件问题分析
2015/10/15 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
PHP模块化安装教程
2016/06/01 PHP
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
详解JavaScript中的Unescape()和String() 函数
2015/11/09 Javascript
详解JavaScript UTC时间转换方法
2016/01/07 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
2017/08/22 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
python和pyqt实现360的CLable控件
2014/02/21 Python
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
Python中return语句用法实例分析
2015/08/04 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
HTML5地理定位实例
2014/10/15 HTML / CSS
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
单身旅行者的单身假期:Just You
2018/04/08 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
事业单位请假制度
2014/01/13 职场文书
建设投标担保书
2014/05/13 职场文书
岗位工作说明书
2014/07/29 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
邓小平文选读书笔记
2015/06/29 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python