贪吃蛇vb课程设计
题 目 贪吃蛇小游戏
学生姓名 XXXXXX
专 业 计算机信息管理
班 级 XXXXXXX
学 号 XXXXXXX
任课老师 XXXXXXX
XXXXXX 大 学 高 等 职 业 技 术 学 院
二 0 一 0 年 六 月
一 背景
蛇——传说中的圣灵之物,仰头为神、俯首为魔。蛇是月亮国膜拜的神,月亮国的子民们都认为蛇是万能的主宰派来保护他们的守护者。这里有蟒蛇、布袋蛇、响尾蛇、白火蛇、眼镜蛇、魔鬼蛇、机器蛇、水蛇、小龙、橡皮蛇等等各种各样的蛇。蛇在这个岛屿就像空气一样自然的出现在各个角落,有些还成为居民的宠物,陪伴孩子长大,和年轻人一起去探险,守护着散步的老人。
古老月亮国是一个与世隔绝的岛国,善良的人民世世代代生活在这片远离浮躁的世界里,过着与世无争的生活享受着他们的幸福和美满。这里有人们赖以生存的茂密的森林、荒凉的沙漠、寒冷的冰川和广阔的大海也有狂暴的火山和神秘的古代遗址。在善良的女娲神保佑下,人们的生活安宁平静。为了答谢女娲的庇佑,每年月亮国的国民都会举办一个守护蛇大赛,大家都会拿出自己最强、最炫、最快、最稀有的蛇来参加比赛,获得第一名的人将得到国王的特别嘉奖。所以国民一生都在不停的收集各种稀奇古怪的蛇,或者不断的培养更有威力的蛇。在这奇幻的大陆上,在每一片土地都布满着魔法和冒险。勇士们,快带上自己的守护蛇,去和守护蛇一起变的更加强壮、迅猛,去异界寻找那传说中的与众不同的蛇,去神秘的天界去寻找月亮岛的秘密……那将是怎么的一个神奇的经历呢,我们一起去见证那份不可思议的历程吧~
贪吃蛇这款游戏,是利用VB编写的一个软件,在窗体里的任意角落出现青蛙,游戏者通过??? ?控制贪吃蛇,吃掉一个青蛙,蛇身长长一格,分数相应的增加,游戏界面有两个按钮,开始和难度选择键。
本款游戏益智,有趣,可以锻炼游戏者的瞬间反应能力,熟悉??? ?。 一、设计目的
1. 综合Visual Basic相关知识制作简单的可视化应用程序
2. 灵活对程序代码进行利用,修改和编写;
3. 熟练将Visual Basic所学知识和其它知识相结合
二 功能描述
1、 运行
运行时有登陆的界面:开始游戏和难度选择,点击开始键开始游戏,点击难度选择选择难度。
2、 出现青蛙
进入游戏后,界面会出现贪吃蛇和青蛙,电脑随机安排青蛙的位置,吃掉后,青蛙出现在其他的位置。电脑随机安排青蛙的位置。
3、 分数记录
青蛙出现后用????控制贪吃蛇,吃掉一个青蛙,蛇身长长一格,分数相应的增加点中加一分,没吃不加分。
4、 游戏评分
游戏结束后,会弹出一个评分
,电脑会根据游戏者控制贪吃蛇吃掉的青蛙积分,每个十分。
二、概要设计(模块
图)
游戏开始 将顶头的时间初
开始运行 始化。
评分 弹出评分窗口 程 序
运
再开始 顶头的时间初始, 行
界
面
退出运行
三 程序代码
Public beibei As Integer Public baobao As Boolean Sub Frog()
x = Int(26 * Rnd)
y = Int(20 * Rnd)
imgFrog.Left = 360 * x
imgFrog.Top = 360 * y End Sub
Private Sub cmdOption_Click()
Form2.Show
End Sub
Private Sub cmdStart_Click()
Timer1.Enabled = True
lbl_gameover.Visible = False
lbl_Show.Visible = False
lbl_Num.Visible = False
cmdStart.Enabled = False
cmdOption.Enabled = False
beibei= 3
If Img.UBound > 5 Then
For i = 6 To Img.UBound
Unload Img(i)
Next i
End If
Img(0).Left = 6840
Img(0).Top = 720
For i = 1 To 5
Img(i).Left = Img(i - 1).Left + 360
Img(i).Top = Img(i - 1).Top
Next i
For i = 0 To 5
Img(i).Stretch = True
Img(i).Visible = True
Next i
imgFrog.Left = 4320
imgFrog.Top = 2880
Set Img(0).Picture = LoadResPicture("al", 0)
End Sub
Private Sub Form_Load()
Set Img(0).Picture = LoadResPicture("al", 0)
For i = 1 To 5
Set Img(i).Picture = LoadResPicture("bb", 0)
Next i
lbl_gameover.Visible = False
lbl_Show.Visible = False
lbl_Num.Visible = False
beibei = 3
Timer1.Interval = Form2.hs.Value End Sub
Private Sub Timer1_Timer()
If beibei= 1 Then
Call Change
Img(0).Top = Img(0).Top - 360
ElseIf beibei = 2 Then
Call Change
Img(0).Top = Img(0).Top + 360
ElseIf beibei = 3 Then
Call Change
Img(0).Left = Img(0).Left - 360
ElseIf beibei = 4 Then
Call Change
Img(0).Left = Img(0).Left + 360
End If
If Img(0).Left = imgFrog.Left And Img(0).Top =
imgFrog.Top Then
Do
Baobao = True
Call Frog
For i = 0 To Img.UBound
If imgFrog.Left = Img(i).Left And imgFrog.Top = Img(i).Top
Then
haha = False
Exit For
End If
Next i
Loop While baobao = False
Load Img(Img.UBound + 1)
Set Img(Img.UBound).Picture = LoadResPicture("bb", 0)
Img(Img.UBound).Stretch = True
If Img(Img.UBound - 1).Left - Img(Img.UBound - 2).Left = 360 Then
Img(Img.UBound).Left = Img(Img.UBound - 1).Left + 360
Img(Img.UBound).Top = Img(Img.UBound - 1).Top
ElseIf Img(Img.UBound - 1).Left - Img(Img.UBound - 2).Left = -360 Then
Img(Img.UBound).Left = Img(Img.UBound - 1).Left - 360
Img(Img.UBound).Top = Img(Img.UBound - 1).Top
ElseIf Img(Img.UBound - 1).Top - Img(Img.UBound - 2).Top = 360 Then
Img(Img.UBound).Top = Img(Img.UBound - 1).Top + 360
Img(Img.UBound).Left = Img(Img.UBound - 1).Left
ElseIf Img(Img.UBound - 1).Top - Img(Img.UBound - 2).Top = -360 Then
Img(Img.UBound).Top = Img(Img.UBound - 1).Top - 360
Img(Img.UBound).Left = Img(Img.UBound - 1).Left
End If
Img(Img.UBound).Visible = True
End If
If Img(0).Left < 0 Or Img(0).Left > Pic_grass.Width - 360 Or Img(0).Top < 0 Or
Img(0).Top > Pic_grass.Height - 360 Then
Timer1.Enabled = False
lbl_gameover.Visible = True
lbl_Show.Visible = True
lbl_Num.Visible = True
lbl_Num.Caption = Img.UBound - 5
cmdStart.Enabled = True
cmdOption.Enabled = True
End If
For i = 1 To Img.UBound
If Img(0).Left = Img(i).Left And Img(0).Top = Img(i).Top Then
Timer1.Enabled = False
lbl_gameover.Visible = True
lbl_Show.Visible = True
lbl_Num.Visible = True
lbl_Num.Caption = Img.UBound - 5
cmdStart.Enabled = True
cmdOption.Enabled = True
End If
Next i
End Sub
Sub Change()
For i = Img.UBound To 1 Step -1
Img(i).Left = Img(i - 1).Left
Img(i).Top = Img(i - 1).Top
Next i
End Sub
Private Sub Pic_grass_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 38 Then
Set Img(0).Picture = LoadResPicture("au", 0)
Beibei = 1
ElseIf KeyCode = 40 Then
Set Img(0).Picture = LoadResPicture("ad", 0)
Beibei = 2
ElseIf KeyCode = 37 Then
Set Img(0).Picture = LoadResPicture("al", 0)
Beibei = 3
ElseIf KeyCode = 39 Then
Set Img(0).Picture = LoadResPicture("ar", 0)
Beibei= 4
End If
End Sub
四 运行界面
五
一 存在的不足
1没有暂停键
2不能退出。
二?心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
通过了这一周的VB课程设计,我学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在
本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次自己做一个程序,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过这次课程设计之后,一定把以前所学过的知识重新温故。
程序设计师需要大量的时间去动手练习才能体验到她的内涵,同时还需要用心去投入,时间和感情花下去之后,的确慢慢的感受到有所收获了,而却也噶据我到了一点点的乐趣了。可能是一个良性循环的开始吧,相信以后会做的更好的。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,但是在老师和同学的帮助下终于解决。在此向老师还有给过我帮助的同学们表示忠心的感谢~
七.参考文献
Visual Basic 程序设计教程(6.0版)