python--模拟掷骰子游戏

简介: 通过python模拟掷骰子的游戏

通过python模拟掷骰子的游戏



题目是:


双骰子赌博游戏玩法如下。玩家投掷两个骰子,如果点数和是7或者11,那么该玩家胜,计算玩1000次后玩家胜的概率。


模拟1000次之后,输出结果并绘制直方图显示计算各点数的分布。

由于每次掷骰子结果都是随机的,所以最终显示的概率每次运行程序都不同。

python 代码如下所示:


# -*- coding: utf-8 -*-
"""
Created on %(date)s
@author: %(jixianpu)s
Email : 211311040008@hhu.edu.cn
introduction : 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 = 1000
    roll_list = np.zeros((num,3))
    for i in range(num):
        # print(i)
        roll1 = roll_dice()
        roll2 = roll_dice()
        x = roll1+roll2
        roll_list[i,2]=x
        if (x==7)| (x==11):
            roll_list[i,1] = x
            print('you win'+'point='+str(x))
            # break
        else:
            roll_list[i,0] = x
            print('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.5
    plt.xticks(tick_pos, tick_labels)
    plt.title(str(num)+'次掷骰子(2个)结果win的概率为:'+str(frequency))
    plt.xlabel('点数')
    plt.ylabel('频率')
    plt.show()
if __name__ == '__main__':
    main()


绘图结果如下图所示:


476226a99ea240c6a43de78630f4e6b6.png

相关文章
|
4天前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
8月前
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
464 48
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
2月前
|
存储 算法 区块链
从零实现Python扫雷游戏:完整开发指南与深度解析
扫雷作为Windows经典游戏,承载了许多人的童年回忆。本文将详细介绍如何使用Python和Tkinter库从零开始构建一个功能完整的扫雷游戏,涵盖游戏设计、算法实现和界面开发的全过程。
173 1
|
8月前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
242 7
|
3月前
|
人工智能 搜索推荐 数据可视化
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
279 1
|
3月前
|
存储 算法 数据可视化
用Python开发猜数字游戏:从零开始的手把手教程
猜数字游戏是编程入门经典项目,涵盖变量、循环、条件判断等核心概念。玩家通过输入猜测电脑生成的随机数,程序给出提示直至猜中。项目从基础实现到功能扩展,逐步提升难度,适合各阶段Python学习者。
176 0
|
8月前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
343 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
9月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
185 33
|
11月前
|
IDE 开发工具 Python
Python扑克游戏编程---摸大点
Python扑克游戏编程---摸大点
149 1
|
11月前
|
数据采集 前端开发 Python
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
230 0

推荐镜像

更多