百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Excel 制作贪吃蛇游戏,让你轻松摸鱼!

myzbx 2025-05-16 15:02 3 浏览

步骤1:准备工作表

1. 创建游戏区域:

o 在单元格区域(如B2:AK30)设置一个矩形区域,调整行高和列宽为正方形(如行高20像素,列宽3字符)。

o 设置背景色为深色(如黑色),作为游戏画布。

2. 初始化界面:

o 在单元格中标注“得分:”和“游戏结束”提示区(如A1和A3)。

步骤2:编写VBA代码

按Alt+F11打开VBA编辑器,插入新模块并粘贴以下代码:

'----- 全局变量声明 -----

Dim Snake() As Range '蛇身数组

Dim Direction As String '移动方向(Up/Down/Left/Right)

Dim Food As Range '食物位置

Dim Score As Integer '得分

Dim GameOver As Boolean '游戏状态

'----- 初始化游戏 -----

Sub StartGame()

'清除原有数据

Range("B2:AK30").Interior.Color = vbBlack

Range("A3").Value = ""


'初始化蛇(长度为3,起始位置为D5:D7)

Set Snake(1) = Range("D5")

Set Snake(2) = Range("D6")

Set Snake(3) = Range("D7")

ReDim Snake(1 To 3)

For Each cell In Snake

cell.Interior.Color = vbGreen

Next


'生成食物

GenerateFood


'初始方向向右

Direction = "Right"

Score = 0

GameOver = False


'启动游戏循环

Do While Not GameOver

MoveSnake

Application.Wait Now + TimeValue("00:00:0.2") '控制速度(0.2秒/帧)

Loop

End Sub

'----- 蛇的移动逻辑 -----

Sub MoveSnake()

'计算新头部位置

Dim Head As Range

Set Head = Snake(UBound(Snake))

Select Case Direction

Case "Up": Set NewHead = Head.Offset(-1, 0)

Case "Down": Set NewHead = Head.Offset(1, 0)

Case "Left": Set NewHead = Head.Offset(0, -1)

Case "Right": Set NewHead = Head.Offset(0, 1)

End Select


'碰撞检测

If Intersect(NewHead, Range("B2:AK30")) Is Nothing Then '撞墙

GameOver = True

Range("A3").Value = "游戏结束!得分:" & Score

Exit Sub

ElseIf NewHead.Interior.Color = vbGreen Then '撞自己

GameOver = True

Range("A3").Value = "游戏结束!得分:" & Score

Exit Sub

ElseIf NewHead.Address = Food.Address Then '吃到食物

Score = Score + 10

Range("A1").Value = "得分:" & Score

ReDim Preserve Snake(1 To UBound(Snake) + 1)

Set Snake(UBound(Snake)) = NewHead

GenerateFood

Else '正常移动

Snake(1).Interior.Color = vbBlack '清除尾部

For i = 1 To UBound(Snake) - 1

Set Snake(i) = Snake(i + 1)

Next

Set Snake(UBound(Snake)) = NewHead

End If


'更新蛇身颜色

For Each cell In Snake

cell.Interior.Color = vbGreen

Next

End Sub

'----- 生成食物 -----

Sub GenerateFood()

Randomize

Do

Set Food = Range("B2").Offset(Int(29 * Rnd), Int(36 * Rnd))

Loop Until Food.Interior.Color = vbBlack

Food.Interior.Color = vbRed

End Sub

'----- 方向控制 -----

Private Sub Workbook_Open()

'绑定方向键

Application.OnKey "{Up}", "TurnUp"

Application.OnKey "{Down}", "TurnDown"

Application.OnKey "{Left}", "TurnLeft"

Application.OnKey "{Right}", "TurnRight"

End Sub

Sub TurnUp(): If Direction <> "Down" Then Direction = "Up": End Sub

Sub TurnDown(): If Direction <> "Up" Then Direction = "Down": End Sub

Sub TurnLeft(): If Direction <> "Right" Then Direction = "Left": End Sub

Sub TurnRight(): If Direction <> "Left" Then Direction = "Right": End Sub

步骤3:运行游戏

1. 启动游戏:

o 按Alt+F8打开宏窗口,选择StartGame并运行。

2. 操作方式:

o 使用键盘方向键控制蛇的移动。

o 吃到红色食物得分+10,蛇身变长。

o 撞墙或自身则游戏结束。

优化技巧

1. 调整速度:

o 修改Application.Wait Now + TimeValue("00:00:0.2")中的时间值(如0.1秒更刺激)。

2. 自定义外观:

o 修改vbGreen和vbRed颜色代码(如RGB(0,255,0))。

3. 扩展功能:

o 添加音效(需调用Windows API)

o 增加难度等级(速度随分数提升)

注意事项

1. 启用宏:

o 首次使用时需在【文件→选项→信任中心】启用宏。

2. 性能问题:

o 避免在大型Excel文件中运行,可能导致卡顿。

3. 兼容性:

o 代码适用于Excel 2010及以上版本。

通过以上方法,你可以将Excel变成一个简易的贪吃蛇游戏平台,适合办公摸鱼或VBA学习实践!

相关推荐

如何用Java还原童年回忆?在线教你完成贪吃蛇小游戏

今天我就从零开始来完成这个小游戏,完成的方式也是一步一步的添加功能这样的方式来实现。额,不好意思,放错了,重来第一步完成的功能:写一个界面大家见到的贪吃蛇小游戏,界面肯定是少不了的。因此,第一步就是写...

金士顿Canvas Go!Plus microSD卡评测 4K影像轻松驾驭

【ZOL中关村在线原创评测】如今,视频已经成为社交媒体的主流内容传播形式,全民自媒体时代更是让昔日被视为高端、专业的视频拍摄,走进大众的生活。同时,无人机、运动相机等新世代影像设备也已经支持了4K视频...

国外顶尖教程大师教你设计一个炫酷游戏海报...

今天的教程很实用,我想对于做网页设计的童鞋肯定非常想学会用Photoshop的合成技巧来制作高端的游戏网站我们将用很多素材和照片来合成一个场景和一些页头和导航的制作。过程需要很长时间,素材也很多,我自...

Excel 制作贪吃蛇游戏,让你轻松摸鱼!

步骤1:准备工作表1.创建游戏区域:o在单元格区域(如B2:AK30)设置一个矩形区域,调整行高和列宽为正方形(如行高20像素,列宽3字符)。o设置背景色为深色(如黑色),作为游戏画布。2.初...

成长的画布,绘满童趣色彩

在万家丽热闹的脉动中,特步童装是一方柔软的画布,等待孩子们用欢笑与奔跑泼洒斑斓色彩。这里没有生硬的商业气息,每一件衣物都像会呼吸的精灵,悄悄诉说着关于童年的奇妙物语。漫步其中,仿佛踏入一座流动的童话森...

【教育高质量发展】施甸县示范小学:地面为画布 游戏“绘”出精彩童年

近日,施甸县示范小学积极践行“健康第一”教育理念,在寒假前夕,学校美术组教师联合部分师生完成了校园地面游戏彩绘工作。教师们以地面为画布,绘制跳格子、转盘、迷宫等游戏图案,为下学期师生15分钟课间做好了...

《国王的画布》Steam试玩发布 手绘风地图制作工具

HannesBreuer工作室制作并发行,一款手绘风地图制作工具游戏《国王的画布》Steam试玩发布,本作暂不支持中文。《国王的画布》游戏中玩家可以自定义交互式路径生成随机元素,易于调整改动。无需...

怪物收集RPG冒险游戏《妖之乡》7月16日正式发售

今日(6月18日),怪物收集RPG冒险游戏《妖之乡》更新发售日消息,该作将于7月16日发售,游戏试玩Demo现已正式上线,感兴趣的玩家可以进入商店页面。游戏介绍:《妖之乡》是一款东方奇幻的怪物收集R...

208元起,育碧第一人称动作冒险游戏《阿凡达:潘多拉边境》发售

IT之家6月18日消息,育碧旗下第一人称动作冒险游戏《阿凡达:潘多拉边境(Avatar:FrontiersofPandora)》已于今天登陆Steam平台(点此访问),目前本作正在平台...

甜蜜下潜藏的疯狂?和病娇美少女《米塔》在一起的冒险解谜游戏今日发售

由Aihasto开发制作,IndieArk发行的冒险解谜游戏《米塔》在今日上架Steam平台进行发售。售价人民币52元,首发-10%的折扣持续14天,折扣后仅需46.8元。该作同步支持日语和俄语配音...

十大必玩的合作单机游戏排行

合作模式一直是单机游戏中的重要元素,玩家可以和朋友一起组队、配合,共同完成游戏任务。在众多的合作单机游戏中,哪些才是最值得一试的呢?本文将为大家介绍十大必玩的合作单机游戏排行。这些游戏不仅拥有精彩刺激...

原版20周年献礼:《战争机器:重装上阵》游戏8月26日发行

IT之家5月6日消息,微软官方XboxWire博客昨日(5月5日)发布博文,官宣《战争机器:重装上阵》(GearsofWar:Reloaded)游戏,将于2025年8...

十款免费的战斗单机游戏推荐之网络版

这篇文章主要介绍了十款免费的战斗单机游戏,并对它们进行了排行。这些游戏涵盖了不同类型和风格,包括角色扮演、射击、策略等。每款游戏都有详细的介绍和评价,读者可以根据自己的喜好选择适合自己的游戏。对于喜欢...

十大必玩的合作单机游戏:打造完美团队

合作模式一直是单机游戏中的重要元素,玩家可以通过合作来共同完成游戏任务,增加游戏的趣味性和挑战性。在本文中,我们将为您介绍十大必玩的合作单机游戏。这些游戏不仅拥有精彩刺激的剧情和画面,还提供了多种合作...

十款好玩的战斗单机游戏:哪个更好玩

战斗单机游戏一直是玩家们的最爱,而好玩的战斗单机游戏更是备受期待。在众多的战斗单机游戏中,哪些更好玩呢?本文将为您介绍十款备受好评的战斗单机游戏,并进行详细比较分析。无论您是喜欢动作还是策略,都能在这...