Python如何使用random模块实现掷骰子游戏
这篇文章将为大家详细讲解有关Python如何使用random模块实现掷骰子游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
python主要应用领域有哪些
1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网站均为Python开发。3.人工智能应用,基于大数据分析和深度学习而发展出来的人工智能本质上已经无法离开python。4、系统运维工程项目,自动化运维的标配就是python+Django/flask。5、金融理财分析,量化交易,金融分析。6、大数据分析。
题目要求
一盘游戏中,两人轮流掷骰子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模块实现掷骰子游戏”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341