1.给未来程序员的赛车游戏网址?
2.学习制作大型网洛游戏需要多少时间
3.excel中好像有个放置猴子去射气球的游戏,请问哪里有得下啊
给未来程序员的小游戏源游戏网址?
一、给未来程序员的码赛游戏网址?是GitHub(/)。GitHub是游戏源码一个全球最大的开源代码托管平台,程序员可以在上面找到各种开源项目和代码资源。大全选择GitHub作为游戏网址的赛车MM约玩源码原因是因为它提供了丰富的游戏开发项目和工具,可以帮助未来的小游戏源程序员学习和实践游戏开发技术。在GitHub上,码赛程序员可以找到各种类型的游戏源码游戏项目,包括2D和3D游戏,大全像素艺术游戏,赛车模拟器等。小游戏源这些项目不仅提供了游戏的码赛源代码,还包括文档、游戏源码教程和示例,大全可以帮助程序员理解游戏开发的各个方面。此外,GitHub还提供了一些专门用于游戏开发的工具和库,如Unity引擎、Unreal Engine、Cocos2d-x等。这些工具和库可以帮助程序员快速搭建游戏框架,实现游戏功能,加速开发过程。选择GitHub作为游戏网址的是,通过参与开源游戏项目,程序员可以与其他开发者合作,学习他们的经验和技巧,提高自己的编程能力和团队合作能力。此外,GitHub还提供了版本控制和协作功能,方便程序员进行代码管理和团队协作。总之,选择GitHub作为未来程序员的游戏网址是一个不错的选择,因为它提供了丰富的游戏开发资源和工具,可以帮助程序员学习和实践游戏开发技术,并与其他开发者进行交流和合作。
二、求帮忙载这个游戏,网址是/store/apps/details?id=jp.akb.android?
下载这个游戏需要对电脑进行一定的加速处理,否则无法下载游戏
三、小游戏的网址是什么?
小游戏的网址;小游戏,小游戏,小游戏大全,双人小游戏大全 - www..com 中国领先的游戏平台
扩展资料
小游戏是四三九九网络股份有限公司创立的一个在线休闲小游戏平台。平台一直坚持以“用户体验”为核心的模式,免费为用户提供各种绿色、安全、健康的团拼小程序源码游戏,不断完善服务策略,赢得了众多忠实的用户。
“小游戏”里所有游戏都是免费的,每天首页都会把最好玩,最新的游戏推荐给所有玩家,游戏天天保持不同程度的更新,专业提供绿色、安全、健康、好玩的游戏,是中国最大的在线游戏平台。网友之间还可以互动交流。很多游戏都有视频和攻略。每个小游戏都拥有详细的游戏指南让玩家上手,深受白领和学生们的喜爱。的宗旨是将最简单的游戏,最纯粹的快乐带给玩家。
四、哪个有《权力的游戏》的网址?
《权力的游戏》网址:腾讯视频网站搜索就可以找到
五、电脑单机游戏从哪个网址下载?
游民星空、游侠、3DM这三个最好。
1、游迅网(国内较早专注单机游戏资讯和游戏资源网站,以原创单机资讯,资源下载速度快,游戏安装)。
2、太平洋游戏下载(已经形成了包括网络游戏/电子竞技/游戏视频/动漫世界/互动社区等精品频道)。
3、多玩单机游戏(多玩游戏网是涵盖客户端游戏,网页游戏,TV游戏,单机游戏,小游戏的综合性游戏媒体网站)。
六、苹果手机为什么网址无效下不了游戏?
苹果手机无法打开网址或无法下载游戏可能有几个原因。
首先,可能是由于网络连接问题,您的手机无法连接到互联网。您可以尝试重新连接Wi-Fi或使用移动数据来解决此问题。
其次,可能是由于网址本身无效或游戏不再可用。您可以尝试使用其他网址或在App Store中搜索相应的游戏。
最后,可能是由于您的手机设置限制了下载或访问特定网址。您可以检查设置中的限制选项,并确保允许下载和访问所需的内容。如果问题仍然存在,建议您联系苹果客服或寻求专业技术支持。
七、求Flash游戏:女体盛轨迹,网址或文件orz?
这种游戏很难找,驰维空间空间源码网上基本上都绝迹了
八、哪个网址的电脑游戏能下载呢?
电脑游戏下载网址有很多,其中比较有名的有Steam、Origin、Uplay等平台,在这些平台上可以下载并安装各种类型的游戏,包括射击、赛车、模拟经营等等。
通过这些网址下载游戏不仅方便快捷,还可以得到游戏的最新更新和优惠活动。此外,也可以通过一些游戏论坛或者独立游戏开发者的网站下载一些有趣的小游戏。需要注意的是,在下载和安装游戏时要注意来源的安全性和游戏是否符合版权法规定。
九、ps4国行游戏商店网址是多少?
没有官方商店网址,淘宝上有实体光盘版,也可以从ps4内的商店app直接购买。
想看看国行有哪些游戏,可以去playstation4的中国官网查看。十、7k7k小游戏的网址是?
1. /2. 这是因为7k7k是一个专门提供小游戏的网站,拥有大量的小游戏资源,用户可以在上面找到自己喜欢的游戏进行娱乐。3. 除了7k7k,还有很多其他的小游戏网站,如、小游戏、游戏盒子等,用户可以根据自己的喜好进行选择。
学习制作大型网洛游戏需要多少时间
游戏制作有许多分工,并不是一个人的力量就能完成的,关于游戏的分工,可以参考
/
我下面给你列举一些游戏制作的书籍,你也可以到
/computer/gdev 查询。
Maga游戏角色制作完全攻略(附光盘)
...
游戏编程中的人工智能技术
本书是人工智能游戏编程的一本指南性读物,介绍在游戏开发中怎样应用遗传算法和人工神经网络来创建电脑游戏中所需要的人工智能。书中包含了许多实用例子,所有例子的完整源码和可执行程序都能在随书附带的光盘上找到。光盘中还有不少其他方面的游戏开发资料和一个赛车游 ...
Java开发利器:J2ME 手机游戏开发技术详解
本书分为4篇:起步篇、基础篇、进阶篇和实战篇,循序渐进地讲解了如何使用J2ME开发无线应用。本书详细讲解了J2ME的app下载html源码统计图形用户界面、游戏线程、记录存储、通用联网架构等基础知识,还在以往MIDP 1.0的基础上增补了2.0的新内容,并对这些新技术加以详细介绍,这些技术包 ...
MUD游戏编程(配光盘)
本书从网络基本知识入手,全面阐述了如何开发纯文字MUD游戏。并通过构建SimpleMUD和BetterMUD这两个MUD,重点讲述了如何实现MUD。本书分为4大部分。第1部分介绍了计算机网络的基本知识、Winsock/Berkeley Sockets API以及多线程的概念;展示了本书所用的基本库BasicLi ...
剑与电——角色扮演游戏设计艺术
本书通过作者自己多年的游戏开发经验,从RPG游戏的制作角度对游戏的设计提出了自己独到的见解。作者用简单幽默的语言系统地介绍了“玩家的概念”、“获取灵感的方法”、“游戏设计及开发的全过程”等各个方面。更加珍贵的是作者采访了多位游戏业界知名设计人员,以访谈?...
DirectX角色扮演游戏编程
与其他游戏相比,角色扮演游戏用一种完全不同的方式把玩家吸引到游戏的世界。在这里,玩家突破了虚拟与现实世界之间的障碍,成为了奇异的游戏世界的一员。准备好,把你富有创造性的思想变为行动,用你的双手创建属于你自己的角色扮演游戏吧!DirectX角色扮演游戏编程(原?...
游戏天地.精华本.共三册 (含盘)
...
OpenGL游戏程序设计
本书重点介绍了如何使用高性能的OpenGL图形与游戏函数库来开发游戏的视频部分。为了让读者了解创建一个游戏的全部过程,书中还包含了DirectX的内容。本书是涵盖这两方面内容的极少书籍之一。 在本书中,首先介绍了OpenGL和DirectX的产生背景,对它们的工作机理 ...
枪墓.下--日本经典游戏 动画设定资料集
...
J2ME手机游戏开发技术详解
...
3D 游戏编程入门经典
...
3D 游戏编程(含光盘)
本书比较全面地介绍了3D游戏开发的知识和技能,介绍了3D编程的基础知识、编程技术,并以实例的形式展现了相关的地形处理、卡通形象处理和其他高级形象设计等应用技术。在讲解编程技术的同时,介绍了一些相关的数学、物理知识。本书针对专业游戏开发者,着重培养初?...
Visual C++经典游戏程序设计
本书以如何利用Visual C++实现扫雷、贪吃蛇、推箱子、俄罗斯方块、拼图、连连看这6款经典的王者归来棋牌源码组件小游戏为主线,详细介绍了如何通过Visual C++的各种优良机制结合界面交互绘图去实现特定需求、MFC的实现机制、Windows GDI绘图以及界面的程序设计等知识。本书在介绍游戏?...
Direct3D游戏开发技术详解
本书分为两部分,第1部分是基础部分,全面系统地讲述了Direct3D游戏编程所需的基础知识,并辅以针对性的训练和实例。第2部分是进阶部分,全面讲述了现代3D游戏中非常经典的技术和一些国内外最新的技术,包括地形渲染所涉及的关键技术和方法、主流3D动画技术、各种3D ...
Visual C++/DirectX9 3D游戏开发导引
本书全面地介绍了使用Visual C++/DirectX9开发3D游戏的基本方法和步骤。全书共分为章,主要内容包括Win API编程、3D游戏中的数学基础、各种3D渲染原理及涫迪旨际酢�irectInput输入处理和DirectSound声效处理等。另外,对四元数的数学构造、骨骼动画的原理和实 ...
C++游戏编程入门教程(含CD-ROM光盘一张)
本书从C++语言和游戏编程最基础的内容开始,讲述如何用C++语言进行游戏编程。全书共分章,内容由浅入深,全面覆盖了C++语言的重要概念和编程技术。本书结构严谨,注重培养读者的实际动手能力。书中有关概念和知识的讲解均配有与游戏有关的小程序,每章的最后结合?...
网络游戏服务器编程
本书作者以其在韩国多年从事网络游戏开发的经验,向读者展示了网络游戏开发的核心——服务器编程的基本原理和特定技巧。书中首先介绍了计算机网络的基础知识,以及UNIS Socket、Winsock编程;然后全面讲述网络游戏服务器组的设计,并分析适合特定游戏的网络模型,接 ...
巅峰对决2;全球电子竞技比赛全接触 (含盘)
本系列丛书以简洁的笔触详细介绍了全球各大电竞赛事的风风雨雨和不为人知的轶闻趣事,专门聘请职业电竞于镓教授实战经验和分析电竞赛事中的精彩对局。内容涵盖WCG、WEG、CPL、ESC、CEG等众多国内外重大电竞赛事,包括CS,魔兽,星际,FIFA、实况足球等多个项目。这?...
巅峰对决 1:全球电子竞技比赛全接触 (含盘)
本系列丛书以简洁的笔触详细介绍了全球各大电竞赛事的风风雨雨和不为人知的轶闻趣事,专门聘请职业电竞于镓教授实战经验和分析电竞赛事中的精彩对局。内容涵盖WCG、WEG、CPL、ESC、CEG等众多国内外重大电竞赛事,包括CS,魔兽,星际,FIFA、实况足球等多个项目。这?...
游戏开发中的人工智能(影印版)
...
无尽的任务2东方版官方攻略本 (含盘)
...
VIRTOOLS 技术·实战篇(含盘)
这是一本个人与小团队独立开发大型三维游戏的必备教程。这是一把让所有创作者充分激发自己的创意、挥舞梦氲慕鹪砍住C恳晃谎�氨臼榈腥耍�加谢�岢晌��使�镜亩ゼ馍杓剖ΑA⒓葱卸��梦颐钦驹诮鹱炙�亩ザ恕?本书是官方认证的教育训练手册,将带领你进入三维设计?...
3D数学基础:图形与游戏开发
本书主要研究隐藏在3D几何世界背后的数学问题。3D数学是一门与计算几何相关的学科,计算几何则是研究怎样用数值方法解决几何问题的学科。3D数学和计算几何广泛应用在那些使用计算机来模拟3D世界的领域,如图形学、游戏、仿真、机器人技术、虚拟现实和动画等。 ...
游戏编程全接触
本书的作者以其对游戏行业的独到见解,讲述了游戏开发的方方面面。从游戏是怎样一个行业到游戏业中形形色色的人;从细琐的技巧和算法,到游戏的结构和架构;从调试技巧到进度里程碑的创建和项目进度的管理。本书共章,分成四大部分:第一部分“游戏编程基础”,介 ...
Java游戏高级编程
本书通过丰富的示例游戏,详细讲述了Java游戏高级编程方面的知识。包括部署框架、Swing动画、动画库、高级图形技术、持久性机制、游戏体系结构以及一些通信和同步技术等。本书针对那些具有一定编程经验、渴望将自己独特的游戏设计思想变成部署实体的Java高级开发人员?...
还有好多,还是你自己看吧!有什么问题可以问我,欢迎你来交流,akinggw@.com
excel中好像有个放置猴子去射气球的游戏,请问哪里有得下啊
一:纸牌游戏
启动Excel程序,依次点击工具栏中“工具/自定义”菜单,切换至“命令”标签页,选中左侧“类别”栏中的“工具”菜单,向下拖动右侧“命令”栏侧边滑块,找到带有纸牌图形的“自定义”选项(如图),将它拖至Excel工具栏中,点击“关闭”按钮将“自定义”对话框关闭。现在,Excel工具栏中就多了一个纸牌按钮,点击该按钮,熟悉的纸牌游戏界面就出现在你面前了。
二: MicroSoft Excel 暗藏赛车游戏
1.开启Excel之后随便开一新文档,将它『另存成Web画面 』,按下发布后再将“添加交互对象”打勾,将档案储存为car.htm(文件名可自取)。
2.在IE中开启car.htm,你应该会看到电子表格出现在网页中央,如图1:
图1
3.在这个工作表中,先用PageDown键移动工作表的矩形光标直至第行,注意只能用PageDown键,然后用Tab键横向向右移动光标直至WC列,也是只能用键操作,到此,所有的准备工作已经完毕,该是调出游戏的时候了。
4.同时按住Shift+Crtl+Alt 然后点选左上方的 Office logo 。
5.开始玩了,如图2:
图2
6.玩法提示: 玩游戏的时候,被你控制的是那一辆浅蓝色的汽车,操作的主要是四个箭头按键。作用是:左右箭头可以控制汽车的方向:向上箭头可以加速, 向下的箭头减速;如果汽车运行到了夜间,可用H键打开车灯。
绝对好玩!
三:数字华容道
'先说个简单的。大家玩过那个数字华容道吧,就是有N*N个格,有一格是空的,其他格是次序混乱的拼图或数字,游戏的目的就是利用这唯一的这个空格移动各块拼图把混乱的拼图(数字)恢复(顺序)。这里我们小游戏的目的是要把1至这个次序混乱的数字恢复从1到的顺序排列。
'打开Excel后打开代码编写器(Alt + F),将如下代码写入模块中。程序首先是初始化。定义变量,选择4*4的空格,调整表格大小,改变单元格颜色(标示出游戏区域),然后是让1到非重复随机分布到前格空格中:
Public Const PW = "Excelba.com" '本游戏由Excel吧bengdeng整理!
Public Running As Boolean '用于判断游戏是否进行中,如果要中途退出或玩家需要重玩用此变量控制
Public SRan As Range '游戏左上单元格
Public BRan As Range '游戏空格单元格
Public N As Integer '游戏区域大小
Public GRan As Range '游戏区域,这里由N与SRan生成
Public Bs As Integer '游戏步数
Public STime As Date '游戏开始时间
Sub GameStar()
Dim i As Integer
Dim ii As Integer
Dim temp As Integer
Dim a() As Integer
Dim down As VbMsgBoxResult
'判断游戏是否在运行
If Running Then
down = MsgBox("游戏正在进行!是否重玩?", vbYesNo, "提示 - " & PW)
If down = vbNo Then Exit Sub
End If
Running = True
N = 4 '设定游戏区域为4*4
Set SRan = Range("E5") '设定游戏开始单元格为E5
Set BRan = SRan.Offset(N - 1, N - 1) '设定游戏空单元格
Set GRan = Range(SRan, BRan)
'游戏区域(颜色)初始化,省略了单元格大小的调整,大家可以应该加入相应语句让游戏外观整齐
If ActiveSheet.ProtectContents Then ActiveSheet.Unprotect Password:=PW
GRan.ClearContents
GRan.Interior.ColorIndex =
'随机数数组初始化,这里是编号0到编号共个数
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)
GRan.Item(i + 1) = a(i)
a(ii) = temp
Next i
Bs = 0
STime = Now()
ActiveSheet.Protect Password:=PW
End Sub
'很明显,Excel的单元格是游戏的主角。初始化后游戏开始,逻辑很简单:玩家每单击一个单元格(产生Workbook中的SheetSelectionChange事件),游戏就判断这个格是否在游戏区域中,若是就判断上下左右4个方向是否有空格,如果有空格就把原单元格中的数传到空格中,原单元格清空(空格与原单元格交换),然后判断游戏是否结束(1到顺序排序了?),若还没有,什么都不做,等下一次单击事件发生。
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim down As VbMsgBoxResult
Dim i As Integer
If Running Then
'所单击单元格是否就是空格
If Len(ActiveCell) > 0 Then
'所单击单元格是否在游戏区域
If Not (Application.Intersect(ActiveCell, GRan) Is Nothing) Then
'所单击单元格上下左右是否有空格
If ((Abs(BRan.Column - ActiveCell.Column) <= 1 And BRan.row = ActiveCell.row) Or (Abs(BRan.row - ActiveCell.row) <= 1 And BRan.Column = ActiveCell.Column)) Then
'单元格与空格交换
If ActiveSheet.ProtectContents Then ActiveSheet.Unprotect Password:=PW
BRan = ActiveCell
ActiveCell.ClearContents
Set BRan = ActiveCell
Bs = Bs + 1
ActiveSheet.Protect Password:=PW
'判断游戏是否结束?
i = 1
Do While (i < N * N And GRan.Item(i) = i)
i = i + 1
Loop
If i = N * N Then
MsgBox "祝贺你!你成功了!" & vbCrLf & _
"一共用了" & Bs & "步!" & vbCrLf & _
"一共用用时" & Format(Now - STime, "h:m:s"), , PW
Running = False
End If
End If
End If
End If
Else
down = MsgBox("游戏还未进行,是否开始?", vbYesNo, "提示 - " & PW)
If down = vbYes Then GameStar
End If
End Sub
四:跑跑卡丁车.xls
网上到处可下!注:打开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从版本开始支持调用系统API,大家可以拓展office应用了)。
就这样游戏输入、输出、逻辑定时的问题都解决了,我们的吃蛇游戏就仅剩下算法逻辑部分了。我们的游戏逻辑是,游戏初始化后,启动定时器。在每次定时循环中,程序分别实现蛇头移动与蛇尾移动。首先是移动蛇头,游戏判断在移动方向上蛇头下一个的位置是否为空格,若是则把这位置的空格填上颜色(蛇头移动),蛇尾移动标志设为真;如果蛇头下一个位置不是空格(即有食物),则把这位置的空格填上颜色(蛇头移动)后把蛇尾移动标志设为假。接着到蛇尾移动部分,若蛇尾移动标志为真则把蛇尾原所在单元格填回白色(蛇尾移动),并更新蛇尾位置;如果蛇尾移动标志为假,则什么都不做(蛇尾不动蛇头动,蛇身长了)。对于整个游戏来说,效率的瓶颈在于像素操作(对单元格频繁填色)。但从以上算法可以看到,在每次循环中程序只需处理蛇头及蛇尾所在单元格;如果贪吃蛇吃到食物,则只需要更新蛇头单元格。每个时间循环里较少的数据处理量实现了游戏较快的响应速度,贪吃蛇游戏在Excel中实现也有了实际意义。
游戏还是以宏的形式实现。大家新建一个宏,输入如下代码。
' 熟悉VB的程序员知道首先是对调用系统API的声明
Public Declare Function SetTimer Lib "user" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
' 定义数据结构
Type pos_
row As Long
col As Long
End Type
Public timerset As Long ' SetTimer函数的返回值,用以标记已存在的Timer,KillTimer以此为参数销毁所标记的Timer
Public gaming As Boolean
Public pulsed As Boolean
Public head_movement As Long '蛇头新移动方向标志,1、2、3、4代表右上左下
Public tail_movement As Long '蛇尾移动方向标志,意义同上
Public oldhead_movement As Long '蛇头旧有移动方向标志
Dim tailmove As Boolean '蛇尾移动标志
Dim origin_size As Long '贪吃蛇原始大小
Public score As Long
Dim steps As Long
Dim clean As Boolean
Dim sth As pos_
Dim headrow As Long '蛇头所在行位置
Dim headcol As Long '蛇头所在列位置
Dim tailrow As Long '蛇尾所在行位置
Dim tailcol As Long '蛇尾所在列位置
Dim startpos As pos_ '贪吃蛇起始位置
Dim color As Long
Const left As L 5 '游戏区域左边边界
Const right As L '游戏区域右边边界
Const top As L 3 '游戏区域上边边界
Const bottom As L '游戏区域下边边界
Function main() '主函数
gaming = False
If Worksheets.Count < 2 Then
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
ElseIf (MsgBox("Do you want to run it in a new blank worksheet ?", vbOKCancel, "?") = vbOK) Then
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
Else
Worksheets(Worksheets.Count).Select
End If
Load UserForm1 '引入窗体
UserForm1.Show
End Function
Function game_initial() '游戏初始化函数
'初始化游戏界面
color = 5
If Not gaming Then
Cells.ColumnWidth = 1
Cells.RowHeight =
Range(Cells(top, left), Cells(top, right)).Interior.ColorIndex = 1
Range(Cells(top + 1, left), Cells(bottom - 1, left)).Interior.ColorIndex = 1
Range(Cells(bottom, left), Cells(bottom, right)).Interior.ColorIndex = 1
Range(Cells(top + 1, right), Cells(bottom - 1, right)).Interior.ColorIndex = 1
Range(Cells(top + 1, left + 1), Cells(bottom - 1, right - 1)).Font.ColorIndex = color
End If
'贪吃蛇初始化
origin_size = 5
tail_movement = 1
head_movement = 1
oldhead_movement = head_movement
startpos.row = (top + bottom) \ 2 'initialized as
startpos.col = (left + right) \ 2 'initailized as
pulsed = False
tailmove = True
headrow = startpos.row
headcol = startpos.col
tailrow = startpos.row
tailcol = startpos.col - origin_size + 1
clean = True
steps = 0
score = 0
For i = 0 To origin_size - 1
Cells(startpos.row, startpos.col - i).Interior.ColorIndex = color
Next i
gaming = True
'游戏初始化结束
End Function
Sub snake_move()
If gaming Then
Dim nextcol As Long
Dim nextrow As Long
If clean Then
steps = steps + 1
'贪吃蛇食物生成,这里食物的生成过程很简单,蛇每前进6步就生成一块食物
If steps >= 6 Then
steps = 0
Randomize
sth.row = Int((bottom - top) * Rnd) + top + 1
Randomize
sth.col = Int((right - left) * Rnd) + left + 1
Do While sth.row >= bottom
sth.row = sth.row - (bottom - top) + 1
Loop
Do While sth.col >= right
sth.col = sth.col - (right - left) + 1
Loop
Cells(sth.row, sth.col) = "*"
clean = False
End If
End If
''''''蛇头移动部分
tailmove = True
If oldhead_movement <> head_movement Then
If Abs(oldhead_movement - head_movement) <> 2 Then
oldhead_movement = head_movement
Cells(headrow, headcol) = head_movement '当方向改变时在蛇头当前单元格记下前进方向,待蛇尾运行至此时可以按正确方向前进。本来应该用个数组记录,但我懒得再琢磨了。
End If
End If
Select Case oldhead_movement
Case 1 'right
nextrow = headrow
nextcol = headcol + 1
Case 2 'up
nextcol = headcol
nextrow = headrow - 1
Case 3 'left
nextrow = headrow
nextcol = headcol - 1
Case 4 'down
nextcol = headcol
nextrow = headrow + 1
End Select
'看是否超出游戏区域了。
If nextcol = left Then
nextcol = right - 1
ElseIf nextcol = right Then
nextcol = left + 1
End If
If nextrow = top Then
nextrow = bottom - 1
ElseIf nextrow = bottom Then
nextrow = top + 1
End If
If Cells(nextrow, nextcol).Interior.ColorIndex = color Then '蛇头碰到蛇身了,游戏结束
Call game_over: Exit Sub
End If
If Cells(nextrow, nextcol) = "*" Then
Call score_
Cells(nextrow, nextcol).ClearContents
End If
Cells(nextrow, nextcol).Interior.ColorIndex = color
headrow = nextrow
headcol = nextcol
''''''蛇尾移动部分
If tailmove Then
Select Case tail_movement
Case 1 'right
nextrow = tailrow
nextcol = tailcol + 1
Case 2 'up
nextrow = tailrow - 1
nextcol = tailcol
Case 3 'left
nextrow = tailrow
nextcol = tailcol - 1
Case 4 'down
nextcol = tailcol
nextrow = tailrow + 1
End Select
If nextcol = left Then
nextcol = right - 1
ElseIf nextcol = right Then
nextcol = left + 1
End If
If nextrow = top Then
nextrow = bottom - 1
ElseIf nextrow = bottom Then
nextrow = top + 1
End If
If Cells(nextrow, nextcol) <> 0 Then
If (Asc(Cells(nextrow, nextcol)) <> ) Then
tail_movement = Cells(nextrow, nextcol)
Cells(nextrow, nextcol).ClearContents
End If
End If
Cells(tailrow, tailcol).Interior.ColorIndex = 0
tailrow = nextrow
tailcol = nextcol
End If
End If
End Sub
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}" '这句很关键,当引入窗体后要在程序中退出窗体就要用Alt+F4
End If
End Function
Function score_()
clean = True
score = score +
tailmove = False
UserForm1.Label2.Caption = "Now you have the score of " + Str(score)
End Function
上边是主程序(宏)部分,以下是窗体代码部分。在工程中引入用户窗体,名为UserForm1,拖入两个label控件名为Label1、2,再在窗体属性窗口调整好窗体在Excel中出现的位置。完成后在窗体代码窗口键入如下代码:
Private Sub UserForm_Initialize() '窗体初始化事件
Call game_initial
If gaming Then
UserForm1.Label1.Caption = "NO PLAY , NO GAME"
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 !"
End If
End Sub
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) '响应窗体KeyDown事件
If gaming Then
If Not pulsed Then
pulsed = True
timerset = SetTimer(0, 0, , 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() '窗体销毁事件,这里是通过主程序发出Alt+F4按键事件引发
If timerset <> 0 Then
timerset = KillTimer(0, timerset)
pulsed = False
End If
MsgBox ("You have finished the game with the score of " + Str(score))
End Sub
不过还没完,我们要找个地方启动整个程序。在工作表sheet1中找个地方拖入一个按钮用作总开关,名为CommandButton1,双击进入代码编写状态,键入
Private Sub CommandButton1_Click()
Call main
End Sub