用Excel写个摸球模拟器玩玩

news/2024/11/9 9:56:31/

用Excel写个摸球模拟器玩玩

    • 背景
    • 代码实现
    • 相关资料

背景


最近对象有个需求,想要帮忙写个程序,实现功能模拟两种颜色的球,随机摸球N次后,摸到不同颜色的次数。

考虑到非程序员的环境配置问题,直接用Excel中的宏开发模式,把许久前学过的VB语言捡起来,简单实现了下,效果如下:

在这里插入图片描述

代码实现


实现思路

  • 界面区:
    • 设置两种颜色球的个数
    • 设置1000、10000、100000次模拟循环按钮
    • 单元格实时刷新摸球模拟结果,并可视化为进度条
  • 代码区:
    • 编写ms级延时函数delay()
    • 编写核心处理函数main_process(),模拟摸球过程
      • 随机函数生成0-1区间的数
      • 根据几何概型将不同类型球的个数转换为概率
      • 统计随机函数生成结果在不同区间的次数,并延时显示到单元格上
    • 不同按钮设置循环次数传递给main_process()
    • 归零按钮实现单元格数据清零

VB代码

Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As LongSub delay(T As Long)Dim time1 As Longtime1 = timeGetTimeDoDoEventsLoop While timeGetTime - time1 < T
End SubSub main_process(loop_times As Long)red = 4yellow = 3ratio_red = red / (red + yellow)normalised_val = 0Range("b5").Value = 0Range("b6").Value = 0delay_t = 0If looptimes = 1000 Thendelay_t = 2End IfIf loop_times = 10000 Thendelay_t = 1Elsedelay_t = 0End IfFor i = 1 To loop_timesIf loop_times <> 100000 Thendelay (delay_t)End Ifnormalised_val = Rnd()If normalised_val < ratio_red ThenRange("b5").Value = Range("b5").Value + 1ElseRange("b6").Value = Range("b6").Value + 1End IfNext iEnd SubSub 按钮1_Click()loop_times = 1000main_process (loop_times)
End SubSub 按钮2_Click()loop_times = 10000main_process (loop_times)
End SubSub 按钮3_Click()loop_times = 100000main_process (loop_times)
End SubSub 按钮4_Click()Range("b5").Value = 0Range("b6").Value = 0
End Sub

如果有兴趣需要现成的excel文件可以评论留言,有需求再放上来,当然还是鼓励自己去尝试下。

相关资料


  1. VBA延时的三个方法,link
  2. VBA常用函数参考,link

http://www.ppmy.cn/news/514745.html

相关文章

解决桌游模拟器Tabletop Simulator(TTS)的卡顿、高延迟999ms的方法

首发b站老是审核不过&#xff0c;吐了&#xff0c;希望这篇没有污染csdn的环境 Tabletop Simulator&#xff08;TTS&#xff09;是什么 TTS是一款桌面模拟器&#xff0c;理论上可以免费体验到世界上99%的桌游的神器。在Steam上售价一般为20~68元之间&#xff1a;https://stor…

QQ飞车手游设计分析

腾讯系竞速手游的逆袭(QQ飞车手游设计分析) 前言 这是中山大学数据科学与计算机学院软件工程2019年3D游戏编程与设计的作业1。 导语 在中国巨大的游戏市场下&#xff0c;手游战场上的战火从未熄灭&#xff0c;其中以王者荣耀为首的MOBA类手游与以PUBG(现改名和平精英)为代表…

qq飞车与服务器未响应,QQ飞车游戏安装失败系统错误提示问题解决方法_QQ飞车游戏安装失败怎么办_游戏堡...

新版本发布后&#xff0c;收到部分玩家反馈&#xff0c;出现安装游戏失败&#xff0c;解压资源包时出现卡进度、提示错误码及系统错误等问题&#xff0c;并且多次安装也不能解决。报错信息如下图所示&#xff1a; 经定位&#xff0c;我们发现是由于部分手机SD卡存储格式问题所导…

qq飞车显示62目录服务器连接失败,[公告] QQ飞车游戏客户端无法登陆解决方法...

为解决QQ飞车卡机问题&#xff0c;我们将于4月25日下午14&#xff1a;00开始对电信2区服务器进行升级。升级期间可能存在短时卡机尊敬的玩家您好&#xff1a; 如果您出现登陆不了QQ飞车游戏的问题&#xff0c;请按以下指引操作&#xff1a; 1、如果是提示“显卡配置太低或驱动太…

EVE-NG模拟器教程(一)——安装包下载

一、EVE-NG 基本简介 EVE-NG(Emulated Virtual Environment-Next Generation)是一款由第三方制作的、功能强大的免费模拟器&#xff0c;是Unetlab&#xff08;Unified Networking Lab&#xff0c;统一网络实验室&#xff09;模拟器的最新版本&#xff08;Unetlab2.0&#xff09…

如何解决QQ飞车win10蓝屏问题

今年七月多买了台笔记本标配了win10家庭版&#xff0c;安装完QQ飞车后总是蓝屏&#xff0c;从7月份到9月份总是这样子。运行飞车后就出现蓝屏。蓝屏代码为SYSTEM_THREAD_EXCEPTION_NOT_HANDLED或者IRQL_NOT_LESS_OR_EQUAL SYSTEM_THREAD_EXCEPTION_NOT_HANDLED蓝屏 IRQL_NOT_LE…

电脑飞车,qq飞车电脑版

qq飞车电脑版》是一款多元素结合的休闲赛车竞速手游&#xff0c;游戏十年经典&#xff0c;端游还原&#xff0c;精致的人物角色&#xff0c;畅玩的激情飙车体验&#xff0c;各种增益道具&#xff0c;百变时装&#xff0c;浪漫社区的邂逅&#xff0c;仿佛一一呈现。 相关推荐&am…

qq飞车鸿蒙车队,qq飞车手游鸿蒙版

qq飞车手游鸿蒙版是一款超好玩的赛车竞速类的游戏&#xff0c;玩家可以在这里体验自由竞速的快乐。游戏由原版人马打造&#xff0c;采用最新的渲染方式能给玩家超棒的视觉享受。游戏中由不同的模式&#xff0c;玩家可以根据自己的喜好进行选择&#xff0c;不同的模式中的任务和…