用Excel编写小游戏

VBA贪吃蛇小游戏 文章目录前言项目引入项目介绍推荐理由场景展示代码总结 前言 最近接触到VBA,记录下学习的内容,以便以后查看! 项目引入 贪吃蛇小游戏 项目介绍 基于excel 实现贪吃蛇小游戏,为枯燥的工作挖掘一点点的happy时光! 推荐理由 推进等级☆☆ 可以通过编写小游戏,提升VBA编程能力,(我是菜鸟,随便学习点对我来说都是提升,大佬请忽视,狗头保命。) 场景展示 提示:这里可以介绍项目的使用场景并进行展示,记得删除示例哦。 代码 ‘’’ ’sheet中的代码 Private Sub CommandButton 阅读详情

游戏要给予人的是欢娱快乐而非困扰闹心,要满足玩乐之心,有时一片树叶已经足够。对于我们这些游戏开发爱好者来说,asm、c、c++、directx、opengl、flash等并非是我们必需的知识和工具,有时一些意想不到的实现更能体现游戏简单的真意。

办公软件Excel大家熟悉不过,其功能我不多说。但大家可有想过在Excel中也可实现个把小游戏?这个不是指97版Excel中的复活节彩旦游戏,而是实实在在的利用Excel资源编写、在Excel下运行的小游戏。经过几代的升级,ms office下的vba(visual basic for application)语言的功能有了很大的提高,在Excel中实现个把平面游戏理论上是可能的。当然这里面也要因应Excel工作区的特点。在Excel中编写应用一般都是通过vba编写宏,这些小游戏也是。至于如何开始编写宏、如何插入窗体及一些选择行列单元格、改变单元格颜色、清除单元格内容等的语句,这里假设大家都知道了,不明白的参考帮助吧。老实说,我对visual basic for application也不大熟悉,做起来整个过程也要不停地看帮助。下面结合代码与大家介绍一下。

先说个简单的。大家玩过那个外国华容道吧,就是有n*n个格,有一格是空的,其他格是次序混乱的拼图或数字,游戏的目的就是利用这唯一的这个空格移动各块拼图把混乱的拼图(数字)恢复(顺序)。这里我们小游戏的目的是要把1至15这15个次序混乱的数字恢复从1到15的顺序排列,就像瑞星网站上那个(不知现在还在不在)。

打开Excel后打开代码编写器(Alt + F11),将如下代码写入其中一个工作表(Sheet)的通用代码部分中。程序首先是初始化。定义数据结构,选择4*4的空格,调整表格大小,改变单元格颜色(标示出游戏区域),然后是让1到15非重复随机分布到前15格空格中:

Type pos
    row As Integer
    col As Integer
End Type

'blank为空格的位置,初值为最后一格
Public blank As pos

'init_pos为游戏区域的左上角,控制游戏区域的位置,这里为(5,5)单元格
Public init_pos As pos

'border为游戏区域边界
Public border As pos

'N为游戏区域的大小,控制游戏的规模(N*N),这里N=4
Public N As Integer

'running用于判断游戏是否进行中,如果要中途退出或玩家需要重玩用此变量控制
Public running As Boolean


'此下是本游戏宏的总入口,由工作区中button启动,如果愿意也可以让游戏宏在打开该表时自动运行
Sub Begin()
If running Then
    Cells(border.row, border.col).ClearContents '将唯一的空格初始化在右下角
    running = False
End If
initialize  '调用全局初始化函数
End Sub

'全局初始化函数
Function initialize()
If Not running Then

Dim i As Integer
Dim ii As Integer
Dim temp As Integer
Dim a(14) As Integer

running = True
N = 4
init_pos.col = 5
init_pos.row = 5
border.row = init_pos.row + N - 1
border.col = init_pos.col + N - 1
blank.col = border.col
blank.row = border.row

'游戏区域(颜色)初始化,省略了单元格大小的调整,大家可以应该加入相应语句让游戏外观整齐
Range(Cells(init_pos.row, init_pos.col), Cells(border.row, border.col)).Interior.ColorIndex = 5

'随机数数组初始化,这里是编号0到编号14共15个数
For i = 0 To (N*N-2)
    a(i) = i + 1
Next i

'不重复随机分布各数
For i = N*N-2 To 0 Step -1
    Randomize
    ii = Int(Rnd * i)
    temp = a(i)
    a(i) = a(ii)
    Cells(init_pos.row + i / N, init_pos.col + (i Mod N)) = a(i)
    a(ii) = temp
Next i
End If
End Function

很明显,Excel的单元格是游戏的主角。初始化后游戏开始,逻辑很简单:玩家每单击一个单元格(产生Worksheet中的SelectionChange事件),游戏就判断这个格是否在游戏区域中,若是就判断上下左右4个方向是否有空格,如果有空格就把原单元格中的数传到空格中,原单元格清空(空格与原单元格交换),然后判断游戏是否结束(1到15顺序排序了?),若还没有,什么都不做,等下一次单击事件发生。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If running Then
'所单击单元格是否就是空格
If (Target.row <> blank.row Or Target.Column <> blank.col) Then
'所单击单元格是否在游戏区域
    If ((Target.row >= init_pos.row And Target.row <= border.row) And (Target.Column >= init_pos.col And Target.Column <= border.col)) Then
'所单击单元格上下左右是否有空格
    If ((Abs(blank.col - Target.Column) <= 1 And blank.row = Target.row) Or (Abs(blank.row - Target.row) <= 1 And blank.col = Target.Column)) Then
'单元格与空格交换
Cells(blank.row, blank.col) = Cells(Target.row, Target.Column)
        Cells(Target.row, Target.Column).ClearContents
        blank.col = Target.Column
        blank.row = Target.row
    End If
    End If
End If

'判断游戏是否结束?
Dim i As Integer
i = 0
Do While (i < N*N And Cells(init_pos.row + i / N, init_pos.col + i Mod N) = i + 1)
i = i + 1
Loop
If i = N*N-1 Then
MsgBox ("你成功了!")
running = False
End If
End If
End Sub

最后在Excel工作区中放个button,用来调用游戏宏启动游戏。双击button,输入代码
Private Sub button_Click()
    Call Begin
End Sub

保存后单击button,游戏开始了!

这个游戏还可以再加上记时、限时、计算移动步数等功能,并记录在表中某个位置作为游戏纪录。游戏没有防作弊功能,人们能够随便修改单元格中的数值,而这可以通过Worksheet_Change事件加以限制(不过这样的游戏都要作弊我无话可说)。

色彩辨识度提升:Excel VBA小游戏项目 Visual Basic for Applications(VBA)是一种事件驱动编程语言,由微软公司在1993年推出,主要用于Office系列软件的自动化。VBA是Visual Basic的一个子集,它继承了Visual Basic的语法结构,使得熟悉VB的开发者能够快速上手。随着计算机技术的发展,VBA逐渐成为了在Office应用中实现自动化、高效完成数据处理和报告生成的重要工具。 阅读详情

相关推荐

使用excel制作俄罗斯方块小游戏

使用excel中vba制作一个小游戏

feifei316631241的博客 1605

Excel VBA小游戏,上班摸鱼必备

Excel 小游戏 介绍 这是我刚学vba的时候做的游戏,这里部分游戏是我自己写的,部分游戏来源网络 下载地址:https://gitee.com/LuoRober/excel_games 游戏目录 1 五子棋 2 三国杀 3 俄罗斯方块-界面版 4 俄罗斯方块-窗体版 5 俄罗斯方块 6 卡牌video poker 7 图灵游戏 8 坦克 9 娱票儿票房分析3 10 扫雷 11 数独3 12 斗地主 13 游戏sliding tile puzzl

1万+

excel小游戏

一款好玩excel小游戏,基于玩家与电脑的对战为基础的类似桌游的小游戏

【用EXCEL编写俄罗斯方块小游戏(基于VBA)】

工作属性原因,工作中使用excel办公是常态。前一阵子因工作业务需求,需要用到VBA。研究了一阵子VBA,解决了当时的需求。 后来想想,VBA可以如此彻底的控制excel,那么可不可以编个小游戏呢。 说干就干,先拿与表格最像的俄罗斯方块试试手。

wrwttsy的博客 7462

Excel益智小游戏人和魔鬼过河

把人和鬼都送到对岸,任何一边鬼都不能比人多,否则鬼吃人,游戏结束,5分钟不能完成者,智商属于底下!^-^

两个用EXCEL制作的小游戏

excel制作的钻石迷情、青蛙过河游戏。转载,非本人原创

写一个 excel中可以运行的 俄罗斯方块游戏代码

Sub Sub ADim I as Integer, J as IntegerFor I = 1 To 10For J = 1 To 10Cells(I, J) = Int(Rnd() * 4)Next JNext IEnd SubSub Sub BFor I = 1 To 10For J = 1 To 10Select Case Cells(I, J)Case 0Range(Cells(I, ...

weixin_35748962的博客 822

用Excel写的十个经典游戏源码

24点Form版3.0、colorlinez、JawBreak、对战五子棋Form版1.0、俄罗斯方块、雷电、连连看、美式9球台球、扫雷、数独、象棋……

(转)用Excel编写小游戏

游戏要给予人的是欢娱快乐而非困扰闹心,要满足玩乐之心,有时一片树叶已经足够。对于我们这些游戏开发爱好者来说,asm、c、c++、directx、opengl、flash等并非是我们必需的知识和工具,有时一些意想不到的实现更能体现游戏简单的真意。 办公软件Excel大家熟悉不过,其功能我不多说。但大家可有想过在Excel中也可实现个把小游戏?这个不是指97版Excel中的复活节彩旦游戏,而是实

sunlingyan2014的专栏 5456

9 HAL库驱动框架简述(STM32HAL库)

HAL库外设的使用步骤总结如下:1、定义并填充xxx外设句柄结构体。2、如果遵循HAL库规范,通过HAL_xxx_MspInit()函数,实现外设底层资源的初始化,包括但不限于GPIO、时钟、DMA、中断等资源的初始化。3、调用HAL库的对应外设初始化函数,形如:HAL_xxx_Init()。4、初始化完成,开始使用外设。5、使用方法具体查看对应外设的HAL库驱动包中的说明:补充:HAL库使用主线外设初始化外设使用。

qq_25218501的博客 1982

光耦合MOSFET(Optocoupled MOSFET,简称OCMOS)

光耦合MOSFET(Optocoupled MOSFET,简称OCMOS)是一种将光电耦合器和MOSFET结合在一起的器件,用于实现电气隔离和信号传输。选择合适的光耦合MOSFET时,还需要考虑具体应用的需求和环境条件,以确保最佳性能和可靠性。- 最大输出电流和电压:确保所选型号能够满足电路的最大电流和电压需求。- 最大输出电流和电压:确保所选型号能够满足电路的最大电流和电压需求。- 隔离电压:根据应用环境的电气隔离要求选择合适的隔离电压。- 隔离电压:根据应用环境的电气隔离要求选择合适的隔离电压。

eydj2008的专栏 1726

用Excel编写小游戏 (转)

用Excel编写小游戏 (转)[@more@]游戏要给予人的是欢娱快乐而非困扰闹心,要满足玩乐之心,有时一片树叶已经足够。对于我们这些游戏开发爱好者来说,asm、c、c++、DirectX、opengl、flash等并非是我们必...

cuibeng3549的博客 1050

生成对抗网络——CGAN(代码+理解)

CGAN(Conditional Generative Adversarial Network)模型是一种 深度学习模型,属于生成对抗网络(GAN)的一种 变体。它的 基本思想是通过 训练生成器和判别器两个网络,使生成器能够生成与给定条件 相匹配的 合成数据,而判别器则 负责区分真实数据和 生成数据。相比于GAN它引入了条件信息(y),使得生成器可以生成与给定条件相匹配的合成数据,从而提高了生成数据的可控性和针对性。

CXDNW的博客 1万+

4399小游戏flash插件怎么下载_教你如何在Excel里玩4399小游戏、看flash视频?好玩又新颖...

在Excel里面玩4399小游戏,看视频?没有看错,利用一个小小的控件可以轻松做到。其实不仅是4399小游戏,像其他的7k7k等flash网页游戏都可以利用shockwaveflash控件导入到Excel。闲话不讲,进入主题。控件名称:shockwaveflash思路在浏览器里打开4399小游戏所在网页,找到游戏所在的真正地址。在Excel里插入shockwaveflash控件。将游戏地址链接与s...

weixin_39601657的博客 4047

Vivado新手必看:5分钟搞定FPGA程序固化到Flash(附MCS文件生成全流程)

本文为FPGA新手详细解析了如何将程序固化到Flash存储器的完整流程。核心在于理解SRAM工艺FPGA断电易失的特性,并利用Vivado工具将比特流文件转换为Flash可识别的MCS文件。文章重点拆解了生成MCS文件的关键配置步骤、硬件连接要点,以及通过JTAG烧写Flash的实战操作,并提供了常见启动失败问题的排查清单,帮助开发者实现设计从调试到产品部署的关键跨越。

weixin_29230901的博客 355

用Arduino Uno和纸板做个扫地机器人?手把手教你复刻一个低成本DIY方案(附完整代码)

本文详细介绍了如何用Arduino Uno和纸板制作一款低成本DIY扫地机器人,涵盖材料准备、机械结构设计、电路系统搭建和智能清扫算法实现。通过开源硬件和日常废弃物,打造极致性价比的创客项目,适合初学者学习电子和编程。

weixin_42531588的博客 271

Excel小游戏_魂斗罗再现[分享]

<br />发个小游戏给大家上班时轻松玩,分享一下。<br /><br />Excel小游戏_魂斗罗再现:点击下载

benkensb的专栏 811

【RTD】AD7793驱动程序

AD7793完整驱动程序,支持两线、三线、四线RTD。

只要思想不滑坡,想法总比问题多。 6177

小福利,用Excel vba设计一个变色小游戏

Excel vba 制作变色小游戏

littlespider889的博客 899

标准测试测试数据STDF学习笔记

本文介绍了STDF(Standard Test Data Format)文件的结构与解析方法。首先详细说明了STDF记录的组成,包括记录头类型(REC_TYP和REC_SUB)、数据类型定义、时间日期格式以及无效数据标识。重点分析了25种主要记录类型的功能、数据内容和出现位置,如FAR、MIR、MRR等关键记录。然后介绍了基于pystdf开源工具的解析方法,包括自带脚本的使用和自编程解析流程,通过事件驱动机制处理数据流。特别指出测试数据是按照PIR→PTR/MPR/FTR→PRR的循环模式组织。文章为ATE

歌颂苦难的行为是无耻的; 1513

[案例四] 智能填写属性工具(支持装配组件还有建模实体属性的批量创建、编辑)

本次案例主要是对上次导出自动导出BOM的一个前处理,要想导出属性,首先的有属性。于是本着学习的态度进行制作,可能有些功能有点别扭(支持装配环境下组件属性的批量填写,支持建模环境下的实体(不包括装配组件实体)——为了减负我把其过滤掉了,一般没人会往装配体里添加进行建模吧,但是不免有奇葩,哈哈哈)。

weixin_47753171的博客 1981

python编写的简单小游戏

各位朋友们,小编在这里要分享,python编写的入门简单小游戏 python编写小游戏详细教程,一起探索吧!大家好,小编来为大家解答以下问题,python自动化运维需要掌握的技能,python自动化运维快速入门 pdf,今天让我们一起来看看吧!

ndwll的博客 593

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Excel下实现贪吃蛇小游戏

上次我们在Excel下实现了一个华容道式的小游戏,使用了Excel中的小部分属性和功能,不到100行语句就完成了。这次我们要把贪吃蛇搬到Excel中,就不那么容易了。首先要解决游戏显示的问题。对我们来说,小游戏最好的平台是Excel的工作区,由于大小可调、颜色可填的单元格操作方便,我们完全可以把它们当像素来使用。于是我们的贪吃蛇游戏就有了以单元格为基础的像素形式的显示方式了。其次是游戏的控

sidekicker的专栏 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Excel+VBA制作小游戏:俄罗斯方块

https://zhuanlan.zhihu.com/p/22147068

allway2的博客 1543

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

excel2000中的小游戏

最近一段时间,学生使用Excel2000效果非常不错,为了鼓励学生继续学好软件,把Excel2000的游戏介绍给了学生,但有的学生还不能理解,先将步骤列出,供参考: A. 启动 “Excel 2000”; B. 点击“文件”菜单,选择“另存为 Web 页”命令; C. 点击“发布”按钮,在弹出的对话框中选择“添加交互对象”; C. 可以在下面的“文件名称”一栏中改变文件存盘...

weixin_34087503的博客 737
下一篇: Excel下实现贪吃蛇小游戏
sidekicker
博客等级 码龄23年 12粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值