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 相关文章推荐
在Linux下调试Python代码的各种方法
Apr 17 Python
python之PyMongo使用总结
May 26 Python
python实现图片处理和特征提取详解
Nov 13 Python
python实现闹钟定时播放音乐功能
Jan 25 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
Apr 18 Python
学习python可以干什么
Feb 26 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
Python列表的切片实例讲解
Aug 20 Python
python cv2在验证码识别中应用实例解析
Dec 25 Python
pandas DataFrame运算的实现
Jun 14 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
Jun 27 Python
python re模块和正则表达式
Mar 24 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分页显示制作详细讲解
2006/10/09 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
JavaScript利用HTML DOM进行文档操作的方法
2016/03/28 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
js实现图片实时时钟
2020/01/15 Javascript
基于javascript实现碰撞检测
2020/03/12 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
Python基于百度云文字识别API
2018/12/13 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
介绍一下grep命令的使用
2012/06/28 面试题
学校元旦晚会方案
2014/02/19 职场文书
安全教育演讲稿
2014/05/09 职场文书
青涩记忆观后感
2015/06/18 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB