用Excel写个摸球模拟器玩玩

news2024/11/24 23:05:10

用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 Long

Sub delay(T As Long)
    Dim time1 As Long
    time1 = timeGetTime
    Do
        DoEvents
    Loop While timeGetTime - time1 < T
End Sub

Sub main_process(loop_times As Long)
    red = 4
    yellow = 3
    ratio_red = red / (red + yellow)
    normalised_val = 0
    
    Range("b5").Value = 0
    Range("b6").Value = 0
    
    delay_t = 0
    If looptimes = 1000 Then
      delay_t = 2
    End If
    
    If loop_times = 10000 Then
      delay_t = 1
    Else
      delay_t = 0
    End If
      
    
    For i = 1 To loop_times
    
        If loop_times <> 100000 Then
            delay (delay_t)
        End If
            
        
        normalised_val = Rnd()
        If normalised_val < ratio_red Then
            Range("b5").Value = Range("b5").Value + 1
        Else
            Range("b6").Value = Range("b6").Value + 1
        End If
    Next i
    
End Sub

Sub 按钮1_Click()
    loop_times = 1000
    main_process (loop_times)
End Sub

Sub 按钮2_Click()
    loop_times = 10000
    main_process (loop_times)
End Sub

Sub 按钮3_Click()
    loop_times = 100000
    main_process (loop_times)
End Sub


Sub 按钮4_Click()
    Range("b5").Value = 0
    Range("b6").Value = 0
End Sub


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

相关资料


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/90767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【配电网规划】SOCPR和基于线性离散最优潮流(OPF)模型的配电网规划( DNP )(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

深兰科技接连斩获工业设计奖!出众产品设计,助AI产品一路领先

十余年来&#xff0c;第三代AI浪潮奔腾汹涌&#xff0c;中国AI产业从全面追赶到部分实现超越。两年前&#xff0c;AI更是正式成为国家七大新基建之一。从国家战略到基础设施&#xff0c;AI正全面地从文件走向现实&#xff0c;国内人工智能的市场规模也迅速扩大。这背后&#xf…

简易聊天室代码分享 js+socket.io

先言 这我以前写的&#xff0c;这里就是单纯分享下代码&#xff0c;不算正经文章。效果如下&#xff0c;前端用一个单html文件。然后后端用node.js和socket.io&#xff0c;也是只用一个单js文件就好。这里可以看下代码的实现逻辑就好&#xff0c;因为来连数据库才能运行的。有…

HTML网页设计制作大作业 基于HTML+CSS+JavaScript实现炫丽口红网化妆品网站(10页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

《天天学敏捷:Scrum团队转型记》读书笔记

读书给人以快乐、给人以光彩、给人以才干。 —— 培根 基本信息 作者&#xff1a;杨蕾&#xff0c;郑江著推荐值&#xff1a;76.7%微信读书&#xff1a;天天学敏捷&#xff1a;Scrum团队转型记 收获 & 思考 阅读目标&#xff1a;提前明确目标&#xff0c;有助于提升阅读效…

营销新赛道:虚拟数字人

2021年10月Facebook改名Meta&#xff0c;引爆全球范围的元宇宙热&#xff0c;和Web 3.0相比较&#xff0c;元宇宙是一个完整的生态&#xff0c;而Web 3.0特指一种交互方式和实现方法&#xff0c;两者之间的关系类似于移动互联网与HTML 5。在元宇宙生态下&#xff0c;营销的3要素…

[附源码]Python计算机毕业设计-高校人事管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

Vue--》路由vue-router的使用讲解

目录 路由简述 vue-router vue-router的安装配置与使用 路由重定向 嵌套路由 嵌套路由重定向 命名路由 动态路由 路由简述 路由&#xff08;英文&#xff1a;router&#xff09;就是对应关系。单页面应用程序&#xff08;SPA&#xff09;指的是一个web网站只有唯一一个…

故障分析 | MySQL死锁案例分析

作者&#xff1a;杨奇龙 网名“北在南方”&#xff0c;资深 DBA&#xff0c;主要负责数据库架构设计和运维平台开发工作&#xff0c;擅长数据库性能调优、故障诊断。 本文来源&#xff1a;原创投稿 *爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转…

[附源码]Python计算机毕业设计高校教材网上征订系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

密码改造技术路径大比拼--“免”改造太理想,“重”改造太复杂,“易”改造是王道

随着《密码法》的颁布施行&#xff0c;密码产业进入爆发式增长期。市场用户侧、供给侧、监管侧对于“密评密改”的标准路径和部署方式共识度低&#xff0c;有唱专业的&#xff0c;有唱商业的&#xff0c;有唱便捷的&#xff0c;有唱可持续发展的&#xff0c;有唱单品的&#xf…

ANSYS Mechanical 2020 R1 版本新特性-CABLE 280单元分析索结构

导读&#xff1a;3D 缆索单元&#xff0c;可用的产品&#xff1a;Pro | Premium | Enterprise | PrepPost | Solver | AS add-on 一、CABLE 280 单元概述 CABLE280适用于分析中等至极细的缆索结构(如海底电缆)。该单元是三维三节点二次线单元。每个节点有x , y , z三个平动自…

【Anime.js】——JavaScript动画库:Anime.js

官方文档 官网定义&#xff1a; anime.js 是一个简便的JS动画库&#xff0c;用法简单而且适用范围广&#xff0c;涵盖CSS&#xff0c;DOM&#xff0c;SVG还有JS的对象&#xff0c;各种带数值属性的东西都可以动起来。 一、搭建开发环境 1、新建一个文件夹 &#xff0c;用vs c…

CpG ODN丨艾美捷ODN 1982 (synthetic)参数说明

艾美捷CpG ODN系列——ODN 1982 (synthetic)&#xff1a;具有硫代磷酸酯骨架的GpC寡脱氧核苷酸。 艾美捷CpG ODN丨ODN 1982 (synthetic)化学性质&#xff1a; 序列&#xff1a;5-tccatgagcttcctgagct-3&#xff08;小写字母表示硫代磷酸酯键&#xff09;。 MW&#xff1a;638…

Java-1214

Spring5总体学习内容 Spring基本概念IOC容器AopJdbcTemplate事务管理Spring5新特性 框架概述 Spring是轻量级的开源的JavaEE框架Spring可以解决企业应用开发的复杂性Spring有两个核心部分&#xff1a;IOC、Aop IOC&#xff1a;控制反转&#xff0c;把创建对象的过程交给Spri…

【ant-design】生态介绍和表单设计器 汇总

▒ 目录 ▒&#x1f6eb; 导读需求开发环境1️⃣ ant-design生态ant-designant-design-vueant-design-pro2️⃣ 表单设计器form-render - 阿里团队开源表单设计器&#xff0c;自家 Antd UI 框架友好form-create - 支持Vue3 及 ElementPlusUI、AntDesign、iview 框架Form Genera…

如何建立好客户信任关系?

2022年9月8日&#xff0c; 一个秋高气爽阳光明媚的日子。 正当我优雅的端起coffee&#xff0c; 专注投入早A晚C的重要一环时&#xff0c; 光头老邱按下一沓资料&#xff0c; 一并丢下经典语录&#xff1a; 这个客户对我们很重要&#xff01; emmm...... 重要的客户托付给…

Centos实现软路由

因公司需求,需要一台Centos主机,既需要做服务器,又要做路由器,要求能够对外提供有线和WIFI,还要求在学校复杂的局域网环境中,能够通过IP直接访问。带着需求去华强北找符合这样设备,华强北给的方案是爱快软路由+centos虚拟机,满足了服务器和路由器功能,但是没法使用学校…

理解频域、时域、FFT和加窗 加深对信号的认识

学习信号时域和频域、快速傅立叶变换(FFT)、加窗&#xff0c;以及如何通过这些操作来加深对信号的认识。 理解时域、频域、FFT傅立叶变换有助于理解常见的信号&#xff0c;以及如何辨别信号中的错误。尽管傅立叶变换是一个复杂的数学函数&#xff0c;但是通过一个测量信号来理…

[附源码]Nodejs计算机毕业设计基于的二手车商城Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…