通过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--模拟掷骰子游戏相关推荐

  1. 编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,掷两枚骰子之后,计算点数之和。

    编写程序模拟掷骰子游戏.已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1.2.3.4.5.6个点,掷两枚骰子之后,计算点数之和.如果第一次掷的点数和为7或11,则游戏者获胜:如果第一次掷的点数 ...

  2. 【程序12】模拟掷骰子游戏

    /*[程序12] * 实例:模拟掷骰子游戏 * 由用户输入骰子数量和参赛人数,然后由计算机随机生成每一粒骰子的数量, * 再累加起来就得到每一个选手的总点数. */ import java.util. ...

  3. python编写掷骰子游戏改哪里把第0局变成第一局_Python基础案例练习:掷骰子小游戏...

    前言 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给新接触Python的初学者们~ 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者 ...

  4. python 赌场掷骰子游戏

    掷骰子是赌场里一种非常流行的游戏.编写这个程序玩这个游戏的变种,如下所示 掷两个骰子.每个骰子有六个面,分别表示值1,2,3,4,5,6.检查两个骰子的和.如果和为2,3,12,你就输了 如果和为7, ...

  5. python投掷骰子实验报告_用Python模拟掷骰子

    在循环中掷骰子:def dice(n): total = 0 for i in range(n): total += random.randint(1, 6) return total 当对整数求和时 ...

  6. java开发掷骰子游戏_java – 模拟掷骰子游戏,非常初学者

    这里有几个问题,第一个播放器,计算机是非静态变量,你想用静态方法(main)访问它们,所以让它们静态. 第二个在diceRoll()方法之外声明获胜者,这样你就可以在main中使用它来制作那个静态. ...

  7. 投掷骰子的python代码_Python基础篇——模拟掷骰子小游戏

    写在前面 ↓ 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给幻想编程岛新接触Python的初学者们~ 注:本教程基于64位windows系统(鼠标右键点击桌面&qu ...

  8. python编写程序掷骰子游戏规则_Python Tkinter实例――模拟掷骰子

    什么是Tkinter? Tkinter 是 Python 的标准 GUI 库.Python 使用 Tkinter 可以快速的创建 GUI 应用程序. 由于 Tkinter 是内置到 python 的安 ...

  9. python编写程序掷骰子游戏_Python基础案例练习:掷骰子小游戏

    前言 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给新接触Python的初学者们~ 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者 ...

  10. Python:使用Pygal模拟掷骰子练习题

    来源:<Python编程:从入门到实践> 文章目录 1 1.1 安装Pygal 1.2 Pygal画廊 1.3 创建Die类 1.4 掷骰子 1.5 分析结果 1.6 绘制直方图 1.7 ...

最新文章

  1. 超详细单机版搭建hadoop环境图文解析
  2. mysql读写分离和组复制_数据库主从复制,读写分离,负载均衡,分库分表分别表达的什么概念?...
  3. 一致性hash算法虚拟节点_Hash算法和一致性Hash算法
  4. 透过认知智能剖析商业本质(iPIN CEO杨洋)丨硬创公开课
  5. 产品问答 | 感觉工作没有成长,该怎么办?
  6. android vivox21 适配,还在苦等Android P的适配?原来这些功能vivo X21早都有了
  7. Eclipse中clean项目的作用
  8. c语言竖等于意思,C语言竖式问题
  9. Nginx站点缓存设置
  10. Airflow 中文文档:教程
  11. C++ struct 与 union
  12. API网关的几点思考
  13. 数据库服务器上导出dmp文件在哪里,sql数据库导出表dmp文件
  14. Flutter TextField(文本输入)使用填坑
  15. 微信登录优化方案设计
  16. 计算机函数sumifs应用题型难,在SUMIFS函数语句中使用Vlookup时遇到问题
  17. 计算机设备管理器命令,打开设备管理器的命令,教你一分钟学会最简单
  18. html 布局 拖拽 在线,可视化编辑 - 拖拽式编辑网页模板无需代码,自由拖拽布局,即可完成网站设计制作!...
  19. Harris角点检测及数据分析
  20. 端口渗透—23端口Telnet

热门文章

  1. 静默安装weblogic
  2. HTTP长连接---requests的长连接
  3. Codeforces-785-D(范德蒙恒等式)
  4. Vrep基础部分(二)
  5. Informatic中如何设置每月初,和每周五、周六跑批
  6. TB6612与电机编码器
  7. [Vue] Vue后台模板汇总
  8. 利用python搭建socket server服务器
  9. python 驱动工控机板卡,研华工控机主板驱动下载
  10. 软件测试书单/书籍推荐(整理更新中)