Excel版贪吃蛇sp1

Excel实现贪吃蛇 天天写报表工具,感觉Excel越用越烦,看着Sheet里的格子,我突然想到了以前他们说用VBA做游戏的想法。 Excel工作表里的格子,天生就适合用来做俄罗斯方块、贪吃蛇这样的小游戏啊,想到了就做,于是有了以下。 先说一下实现方式。 蛇的运动通过user32.dll的SetTimer实现,蛇的组成即一个一维数组,数组存放自定义类型,包含横纵坐标。 蛇、食物通过填充Excel单元格实现。... 阅读详情

上次那个发表的贪吃蛇程序有bug,事实上是对这去年已经完成的程序的思路模糊了,在加入用户交互界面时产生了bug。今次略作修改,大家把下面的语句覆盖原来版本中同名函数和过程应该可以了。老实说,我对这vba还是不太熟悉。我在修改程序时曾使Excel产生错误退出后不论怎么改都是程序崩溃,一气之下新建一个文件,把代码复制过去,居然又正常了!对这样的东西还是没有多大信心,大家还是帮我多多debug吧。

首先是在宏里面的代码。

Function main()
    gaming = False
    If Worksheets.Count < 2 Then
        ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
    Else
        Worksheets(Worksheets.Count).Select
    End If
Load UserForm1
UserForm1.Show
End Function


Function game_over()
   
    If timerset <> 0 Then
        timerset = KillTimer(0, timerset)
        pulsed = False
    End If
    If MsgBox("Game over...temporarily. Try again?", vbOKCancel, "?????") = vbOK Then
        Range(Cells(top + 1, left + 1), Cells(bottom - 1, right - 1)).Interior.ColorIndex = 0
        Range(Cells(top + 1, left + 1), Cells(bottom - 1, right - 1)).ClearContents
        Call game_initial
    Else
        Cells.ClearContents
        Cells.Interior.ColorIndex = 0
        gaming = False
        SendKeys "%{F4}"
    End If
End Function

以下是窗口事件处理代码。

Private Sub UserForm_Initialize()
    UserForm1.Label1.Caption = "NO PLAY , NO GAME"
    Call game_initial
        If gaming Then
           
            UserForm1.Label2.Caption = "Arrow keys to move.                 P key to pause the game             E key to end the game"
        Else
            UserForm1.Label1.Caption = "Something happened !"
            Call game_over
        End If
       
End Sub

 

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If gaming Then
        If Not pulsed Then
            pulsed = True
            timerset = SetTimer(0, 0, 150, AddressOf snake_move)
            UserForm1.Label2.Caption = "Arrow keys to move.                 P key to pause the game             E key to end the game"
        End If
        Select Case KeyCode
            Case vbKeyUp
                head_movement = 2
            Case vbKeyDown
                head_movement = 4
            Case vbKeyLeft
                head_movement = 3
            Case vbKeyRight
                head_movement = 1
            Case vbKeyP
                If timerset <> 0 Then
                    timerset = KillTimer(0, timerset)
                    pulsed = False
                End If
                UserForm1.Label2.Caption = "Game paused. Any key to resume. "
            Case vbKeyE
                Call game_over
        End Select
    End If
End Sub

Private Sub UserForm_Terminate()
    MsgBox ("You have finished the game with the score of " + Str(score))
    Worksheets(1).Select
End Sub

最后是把这三个Excel程序在我机子上运行的截图发一发。

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

相关推荐

Excel VBA贪吃蛇:从零到游戏高手的编程思维训练

本文详细介绍了如何使用Excel VBA从零开始开发贪吃蛇游戏,涵盖环境搭建、核心架构设计、游戏逻辑实现到性能优化的全过程。通过这个项目,读者不仅能掌握VBA编程技巧,还能培养系统性编程思维,将Excel转变为游戏开发平台。

weixin_29290259的博客 678

用Excel制作贪吃蛇

此文章最先发布于我的博客 废话不多说,先放成果。在GitHub上查看源代码 。 开始编写 阅读此教程,你需要了解 什么是VBA,对VBA初步了解 如何在Excel中编辑VBA,并启用它 否则请另行百度。 ##最重要的两个函数 Range和Cells是整个游戏程序中的核心,它们都能返回一个 表示一个单元格、一行、一列、一个包含单个或若干连续单元格区域的选定单元格范围,或者一个三维区域。(摘自https://docs.microsoft.com/zh-cn/office/vba/api/excel

m0_70043868的博客 5591

Excel VBA实战:从零打造可交互贪吃蛇游戏

本文详细介绍了如何利用Excel VBA从零开始开发一个可交互的贪吃蛇游戏。通过VBA编程,读者可以学习如何在Excel中实现游戏核心逻辑,包括蛇的移动、食物生成和碰撞检测。文章还提供了环境配置、代码优化和界面美化等实用技巧,帮助职场人士在Excel中轻松打造个性化游戏。

weixin_29234239的博客 530

Excel下实现贪吃蛇小游戏

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

sidekicker的专栏 1万+

从零开始实现贪吃蛇(完整代码)

本文将分为三个部分来讲解贪吃蛇的实现,分为贪吃蛇开始前的游戏画面、游戏中画面、游戏结束画面,那我们开始吧!

qq_65898266的博客 6492

Excel下实现贪吃蛇小游戏.txt

Excel下实现贪吃蛇小游戏 上次我们在Excel下实现了一个华容道式的小游戏,使用了Excel中的小部分属性和功能,不到100行语句就完成了。这次我们要把贪吃蛇搬到Excel中,就不那么容易了。 首先要解决游戏显示的问题。对我们来说,小游戏最好的平台是Excel的工作区,由于大小可调、颜色可填的单元格操作方便,我们完全可以把它们当像素来使用。于是我们的贪吃蛇游戏就有了以单元格为基础的像素形式的显示方式了。 其次是游戏的控制方法。在这里我摸索了好久,其中走了弯路不说,我最后的结论是在Excel中要实现按键事件的方法是引入窗体,然后在窗体中响应Keydown与Keypress事件。这样的话,既可以快速响应还可以根据情况修改对应按键。 最后是游戏的定时问题。所有的游戏事实上都是在一个时间大循环里面定时接收输入信息更新状态的程序,我们的小游戏都不例外。老实说,我写这个游戏大部分的思考时间就浪费在如何实现游戏定时这里。Excel的VBA中与定时有关的只有onTime函数,没有其他相关函数提供了,onTime函数可以实现某一事件在指定时间发生,但只能以秒为最小单位,对我们要在一秒内更新数十次信息的小游戏不适合,我们只能另找方法。用过VB的人都知道VB控件中有个定时控件,用它来实现游戏定时是最好的,但在Excel中却没有,难道我要把VB中的定时控件移植到VBA中?这也是个很值得研究的课题,但是我想到了另外的方法。VB的程序员都知道要想VB程序发挥大作用一定离不开调用系统的API,于是我查看了系统相关API的帮助,发现系统API中实现相应功能的有settimer与killtimer函数,具体定义和用法大家可以参考相关帮助,但从字面大家都已经可以知道它们就是我们要找的东西了。那么现在的问题就是如何在vba环境下调用系统API。心想微软称vba就是office中的vb,那么在vba中调用系统API应该也与在VB中的一样。一试,呵呵,果然非虚,这微软真不是盖的(后在msdn中发现ms office vba从2000版本开始支持调用系统API,大家可以拓展office应用了)。

VBA实现贪食蛇游戏

用VBA实现的贪食蛇游戏 说明: 用excel画出20 x 20的区域, 添加三个按钮:游戏开始,游戏停止,清空区域 游戏快捷键: 按PgUp按键,加快速度 按PgDn按键:减慢速度 按Ctrl按键:游戏暂停 Option Explicit

Theo_zhang的专栏 4684

贪吃蛇 Excel VBA

用VBA写的一个贪吃蛇小程序,希望大家能够喜欢,同时也帮帮我测测BUG。谢谢。

EXCEL实现简易的贪吃蛇小程序

在EXCEL里,看到不一样的C/C++编程,很多时候用表格来辅助理解编程真的还不错~ EXCEL中的简易贪吃蛇~

AouSdu 9834

vb贪吃蛇代码

vb的代码,很好用的。。。自己做的。。。喜欢的朋友可以拿起来去做

用ExcelVBA编写俄罗斯方块游戏

“俄罗斯方块” 作为一款经典的休闲游戏在新鲜出炉时就显得非常直观, 虽然经过 了大量的变形和更改, 但游戏核心依然保持不变。文中以Excel 2007 为游戏平台, 利用VBA 及Excel 的功能和属性, 详细地介绍了俄罗斯方块程序游戏编写过程。 作者修复了书中出现的Bug 1,删除第8页方块下落控制模块中的无效代码“AddScore (TempBlock.SmallBoxInCurrentBlock(1).Row)” 2,修复第9页游戏满行判断错误 For TempColumn = 1 To Column IsFullRow = IIf(Range("GameArea").Cells(Row, TempColumn).Interior.ColorIndex <> xlNone, True, False) '添加如下代码 If IsFullRow = False then Exit for End If Next

Excel+VBA制作贪食蛇游戏

这个是我第一个Excel游戏,边学边做弄了好久,也没什么美化。其实算法比较简单,看看就会了。 点击下载

阿木的学习天地 2069

贪吃蛇及VB源代码

贪吃蛇经典游戏,是不是对其源代码很好奇呢? 不必着急,这里有VB源代码以及已经编译好的 贪吃蛇.exe文件.初学者也不必着急,VB代码 一定最适合你的胃口.

使用VB创建贪吃蛇

贪吃蛇作为一个经典游戏,在其开发成功后,有很长一段时间令很多人为之振奋,但随着时间的流逝,贪吃蛇也逐渐淡出人们的视野。本次,我利用VB重现贪吃蛇的创建。主要使用到的控件:Label标签,Command按钮,Timer控件。 以下为创建过程: 贪吃蛇作为一个游戏来说,主要分为6个部分: 地图创建部分; 地图坐标初始化部分; 食物创建部分; 贪吃蛇创建部分; 贪吃蛇移动...

weixin_30872733的博客 1032

VBA做的贪吃蛇

这是VBA的控件做的贪吃蛇游戏,具体见我的博客:https://blog.youkuaiyun.com/qq_37608398/article/details/83514713

Qt中常见的面试题总结

基于Qt开发的一些常用面试题

一名热爱编程的程序员 8493

贪吃蛇完整代码(史上最详细)

#include <stdio.h> int main()

m0_74379014的博客 2万+

SQL Server 2025在Windows 11上的安装避坑指南

SQL Server 是微软主流关系型数据库管理系统,其安装与Windows操作系统深度耦合;Windows 11作为新一代桌面平台,强化了基于虚拟化的安全(HVCI)、驱动签名强制策略(WDAC)及内核隔离机制,导致传统数据库部署流程失效。理解二者底层交互原理,是解决服务启动失败、配置管理器无法打开、远程连接被拒等高频问题的技术前提。本文聚焦SQL Server 2025与Windows 11的兼容性挑战,覆盖系统预配置、安装节点诊断、防火墙与服务权限调优等工程实践环节,适用于高校教学、电赛备赛、中小企业

weixin_28741413的博客 322

贪吃蛇完整代码 简便

【代码】贪吃蛇完整代码 简便。

li___12345的博客 7694

(超详细)Scala环境搭建(scala-2.12.15、IDEA2021.1.3)

Scala环境搭建(scala-2.12.15、IDEA2021.1.3) JunLeon——go big or go home 目录 Scala环境搭建(scala-2.12.15、IDEA2021.1.3) 一、Scala概述 1、什么是Scala? 2、Scala发展史 3、Scala与Java的关系 二、Scala环境搭建 1、环境准备 2、Scala安装与配置环境变量 3、验证Scala 三、编写第一个Scala程序 1、使用IDEA创建maven工程 2、.

JunLeon的博客 3万+

别再被 SerialPort 坑了!C# 串口通信的 3 大隐形陷阱与工业级解决方案

NET的SerialPort类更适合实验室调试,而非工业现场——它的设计目标是“能用”,而非“稳定”。工业级串口通信的核心,是在SerialPort基础上构建一层“防护壳”,用主动轮询对抗事件失效,用硬件级操作解决缓冲区谎言,用原子性流程避免关闭死锁。本文提供的类已在30+工业项目中验证(包括汽车生产线、智能仓储、环境监测),可直接替换原生SerialPort,解决90%以上的“玄学问题”。记住:工业场景的“稳定”,从来都不是靠运气,而是靠对每个细节的偏执把控。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 746
上一篇: Excel下实现贪吃蛇小游戏
下一篇: Excel版俄罗斯方块
sidekicker
博客等级 码龄23年 12粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值