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

相关文章
|
1月前
|
IDE 开发工具 Python
Python扑克游戏编程---摸大点
Python扑克游戏编程---摸大点
|
2月前
|
Python
python编写下象棋游戏|4-14
python编写下象棋游戏|4-14
|
2月前
|
人工智能 算法 图形学
总有一个是你想要的分享40个Python游戏源代码
这是一系列基于Python开发的游戏项目集合,包括中国象棋、麻将、足球、坦克大战、扑克等多种类型游戏,运用了Pygame等库实现图形界面与AI算法。此外还包含迷宫、数独、推箱子等益智游戏及经典游戏如《仙剑奇侠传二战棋版》和《星露谷物语》的Python版本,适合编程学习与娱乐。
115 11
|
1月前
|
数据采集 前端开发 Python
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
71 0
|
2月前
|
消息中间件 数据采集 数据库
庆祝吧!Python IPC让进程间的合作,比团队游戏还默契
【9月更文挑战第7天】在这个数字化时代,软件系统日益复杂,单进程已难以高效处理海量数据。Python IPC(进程间通信)技术应运而生,使多进程协作如同训练有素的电竞战队般默契。通过`multiprocessing`模块中的Pipe等功能,进程间可以直接传递数据,无需依赖低效的文件共享或数据库读写。此外,Python IPC还提供了消息队列、共享内存和套接字等多种机制,适用于不同场景,使进程间的合作更加高效、精准。这一技术革新让开发者能轻松应对复杂挑战,构建更健壮的软件系统。
36 1
|
3月前
|
机器学习/深度学习 存储 定位技术
强化学习Agent系列(一)——PyGame游戏编程,Python 贪吃蛇制作实战教学
本文是关于使用Pygame库开发Python贪吃蛇游戏的实战教学,介绍了Pygame的基本使用、窗口初始化、事件处理、键盘控制移动、以及实现游戏逻辑和对象交互的方法。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】python之人工智能应用篇--游戏生成技术
游戏生成技术,特别是生成式人工智能(Generative Artificial Intelligence, 简称Generative AI),正逐步革新游戏开发的多个层面,从内容创作到体验设计。这些技术主要利用机器学习、深度学习以及程序化内容生成(Procedural Content Generation, PCG)来自动创造游戏内的各种元素,显著提高了开发效率、丰富了游戏内容并增强了玩家体验。以下是生成式AI在游戏开发中的几个关键应用场景概述
73 2
|
3月前
|
Python
【python】Python成语接龙游戏[1-3难度均有](源码+数据)【独一无二】
【python】Python成语接龙游戏[1-3难度均有](源码+数据)【独一无二】
|
3月前
|
算法 Python
【python】python基于 Q-learning 算法的迷宫游戏(源码+论文)【独一无二】
【python】python基于 Q-learning 算法的迷宫游戏(源码+论文)【独一无二】
|
3月前
|
机器学习/深度学习 存储 算法
【Python】 基于Q-learning 强化学习的贪吃蛇游戏(源码+论文)【独一无二】
【Python】 基于Q-learning 强化学习的贪吃蛇游戏(源码+论文)【独一无二】
148 0
下一篇
无影云桌面