python--模拟掷骰子游戏
通过python模拟掷骰子的游戏
题目是:
双骰子赌博游戏玩法如下。玩家投掷两个骰子,如果点数和是7或者11,那么该玩家胜,计算玩1000次后玩家胜的概率。
模拟1000次之后,输出结果并绘制直方图显示计算各点数的分布。
由于每次掷骰子结果都是随机的,所以最终显示的概率每次运行程序都不同。
python 代码如下所示:
# -*- coding: utf-8 -*-
"""
Created on %(date)s@author: %(jixianpu)sEmail : 211311040008@hhu.edu.cnintroduction : keep learning althongh walk slowly
"""import numpy as np
import matplotlib.pyplot as plt
import random############################################################################################
########### 定义函数,模拟掷骰子的功能,每次结果都不一样,结果是随机的
############################################################################################
def roll_dice():# 模拟掷骰子roll = random.randint(1, 6)return roll############################################################################################
########### 建议一个二维空数组,第一维度100为模拟次数,
########### 第二维度分布表示:相加之和不是7和11的结果;相加之和是7和11的结果;所有两次相加的结果
############################################################################################
# 记录骰子的结果
def main():num = 1000roll_list = np.zeros((num,3))for i in range(num):# print(i)roll1 = roll_dice()roll2 = roll_dice()x = roll1+roll2roll_list[i,2]=xif (x==7)| (x==11):roll_list[i,1] = xprint('you win'+'point='+str(x))# breakelse:roll_list[i,0] = xprint('you lose'+'point='+str(x))####################################################################################################### calculation the frequency############################################################################################ fre1 = len(roll_list[:,1][roll_list[:,1]==7])fre2 = len(roll_list[:,1][roll_list[:,1]==11])frequency = (fre1+fre2)/len(range(num))# # result = roll_list[:,2]# idx = np.where((result==7)|(result==11))[0]# res_2 = idx[0:2]# data = result[0:(res_2[1]+1)]# frequency2 = 2/len(data)# print('赢两次的概率为'+str(frequency2))####################################################################################################### plot the result of game############################################################################################plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = False plt.figure(dpi=200)plt.hist(roll_list[:,2], bins=range(2, 14), edgecolor='black', linewidth=1, rwidth=0.8)# 设置X轴坐标点tick_labels = ['2点', '3点', '4点', '5点', '6点', '7点', '8点', '9点', '10点', '11点', '12点']tick_pos = np.arange(2, 13)+0.5plt.xticks(tick_pos, tick_labels)plt.title(str(num)+'次掷骰子(2个)结果win的概率为:'+str(frequency))plt.xlabel('点数')plt.ylabel('频率')plt.show()if __name__ == '__main__':main()
绘图结果如下图所示:
python--模拟掷骰子游戏相关推荐
- 编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,掷两枚骰子之后,计算点数之和。
编写程序模拟掷骰子游戏.已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1.2.3.4.5.6个点,掷两枚骰子之后,计算点数之和.如果第一次掷的点数和为7或11,则游戏者获胜:如果第一次掷的点数 ...
- 【程序12】模拟掷骰子游戏
/*[程序12] * 实例:模拟掷骰子游戏 * 由用户输入骰子数量和参赛人数,然后由计算机随机生成每一粒骰子的数量, * 再累加起来就得到每一个选手的总点数. */ import java.util. ...
- python编写掷骰子游戏改哪里把第0局变成第一局_Python基础案例练习:掷骰子小游戏...
前言 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给新接触Python的初学者们~ 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者 ...
- python 赌场掷骰子游戏
掷骰子是赌场里一种非常流行的游戏.编写这个程序玩这个游戏的变种,如下所示 掷两个骰子.每个骰子有六个面,分别表示值1,2,3,4,5,6.检查两个骰子的和.如果和为2,3,12,你就输了 如果和为7, ...
- python投掷骰子实验报告_用Python模拟掷骰子
在循环中掷骰子:def dice(n): total = 0 for i in range(n): total += random.randint(1, 6) return total 当对整数求和时 ...
- java开发掷骰子游戏_java – 模拟掷骰子游戏,非常初学者
这里有几个问题,第一个播放器,计算机是非静态变量,你想用静态方法(main)访问它们,所以让它们静态. 第二个在diceRoll()方法之外声明获胜者,这样你就可以在main中使用它来制作那个静态. ...
- 投掷骰子的python代码_Python基础篇——模拟掷骰子小游戏
写在前面 ↓ 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给幻想编程岛新接触Python的初学者们~ 注:本教程基于64位windows系统(鼠标右键点击桌面&qu ...
- python编写程序掷骰子游戏规则_Python Tkinter实例――模拟掷骰子
什么是Tkinter? Tkinter 是 Python 的标准 GUI 库.Python 使用 Tkinter 可以快速的创建 GUI 应用程序. 由于 Tkinter 是内置到 python 的安 ...
- python编写程序掷骰子游戏_Python基础案例练习:掷骰子小游戏
前言 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给新接触Python的初学者们~ 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者 ...
- Python:使用Pygal模拟掷骰子练习题
来源:<Python编程:从入门到实践> 文章目录 1 1.1 安装Pygal 1.2 Pygal画廊 1.3 创建Die类 1.4 掷骰子 1.5 分析结果 1.6 绘制直方图 1.7 ...
最新文章
- 超详细单机版搭建hadoop环境图文解析
- mysql读写分离和组复制_数据库主从复制,读写分离,负载均衡,分库分表分别表达的什么概念?...
- 一致性hash算法虚拟节点_Hash算法和一致性Hash算法
- 透过认知智能剖析商业本质(iPIN CEO杨洋)丨硬创公开课
- 产品问答 | 感觉工作没有成长,该怎么办?
- android vivox21 适配,还在苦等Android P的适配?原来这些功能vivo X21早都有了
- Eclipse中clean项目的作用
- c语言竖等于意思,C语言竖式问题
- Nginx站点缓存设置
- Airflow 中文文档:教程
- C++ struct 与 union
- API网关的几点思考
- 数据库服务器上导出dmp文件在哪里,sql数据库导出表dmp文件
- Flutter TextField(文本输入)使用填坑
- 微信登录优化方案设计
- 计算机函数sumifs应用题型难,在SUMIFS函数语句中使用Vlookup时遇到问题
- 计算机设备管理器命令,打开设备管理器的命令,教你一分钟学会最简单
- html 布局 拖拽 在线,可视化编辑 - 拖拽式编辑网页模板无需代码,自由拖拽布局,即可完成网站设计制作!...
- Harris角点检测及数据分析
- 端口渗透—23端口Telnet