贪吃蛇(四星)Vb课程设计报告

上传人:鲁** 文档编号:490576459 上传时间:2022-09-21 格式:DOC 页数:16 大小:87.50KB
返回 下载 相关 举报
贪吃蛇(四星)Vb课程设计报告_第1页
第1页 / 共16页
贪吃蛇(四星)Vb课程设计报告_第2页
第2页 / 共16页
贪吃蛇(四星)Vb课程设计报告_第3页
第3页 / 共16页
贪吃蛇(四星)Vb课程设计报告_第4页
第4页 / 共16页
贪吃蛇(四星)Vb课程设计报告_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《贪吃蛇(四星)Vb课程设计报告》由会员分享,可在线阅读,更多相关《贪吃蛇(四星)Vb课程设计报告(16页珍藏版)》请在金锄头文库上搜索。

1、课程设计题目 贪吃蛇(四星)河南理工大学计算机科学与技术学院vb程序设计20 11 20 12 学年第 二 学期日 期 2012年2日20日-24日 学生姓名 学 号 311009030213 专业班级 信息管理与信息系统10级 指导教师 一、 功能“贪吃蛇”是一种很流行的电子游戏。游戏方法如下 :一条蛇在棋盘上爬行,由键盘控制其转弯;棋盘上随机地出现5个数字(15),当蛇的头部碰到数字时(吃数字),蛇的身体会变长。当蛇的头部撞到障碍时或碰到自己身体时,游戏结束,如果蛇头撞到边界时会从另一边钻出。游戏结束时,根据蛇身体的长度计算得分。程序会自己记录最高得分和所用时间,然后提示留下玩家姓名,其默

2、认名为无名侠。二、 课程设计的详细设计程序启动时界面上棋盘由20*20个方格构成。其间有障碍物,障碍物的形状由游戏者自己开始时选取,由程序内置设定。开始时,蛇静止不动,位于窗体的正中央,头向右。身体由一串共五个圆圈表示,代表头部的圆圈为红色,其中有两个小的绿圆圈代表眼睛,当蛇转向时两只眼睛也会转向。按回车键开始游戏,蛇自动在棋盘上向前爬行,用户可以使用“”4个方向键控制其拐弯。蛇只能向左右转90的弯,不能后退。蛇吃掉一个数字后,身体伸长的幅度与数字的大小有关,而且不是每次都突然间伸长,而是逐渐的长长。例如,吃掉“3”后,蛇身体伸长3个圆圈;吃掉“5”后身体伸长5个圆圈。5个数字(15)的位置是

3、随机的,并且互不重叠,且不会出现在蛇身上也不会出现在障碍上,也不会和已经出现的数字重复。当蛇吃掉一个数字时,同样的数字随机地出现在其他位置上,即棋盘上总保持有“15”5个数字。使用回车键可以暂停或继续游戏。游戏进行时,窗口标题栏上显示出已使用的时间和得分,得分是当前蛇身体的长度。蛇在爬行时,如果其头部碰到障碍或自己的身体,则被“撞死”,游戏结束。程序回到游戏开始状态,用户可以重新开始玩。如果成绩超过程序的原有记录,程序将会提示游戏者保存记录,并且输入玩家姓名,其默认的是无名侠。(6)玩家在开始游戏时可以自己设置游戏模式,比如游戏为玩家提供了六种游戏模式,他们的难度都不同,主要表现在他们的障碍物

4、的分布上。玩家可以通过游戏界面上的设置来自己定义游戏的模式。本游戏还提供了对游戏的说明和帮助。三、 调试程序的过程程序在编制过程中由于变量过多,而且使用的语句反复,出现了很多的问题,特别是在程序的调试过程中,经常会出现变量未定义,或者变量益出的错误,还有很多编制的程序段都没有达到设计功能。比如在用line1() 和 line2()进行绘制格线时就没能达到初始要求,后经多次改进才达到设计要求。再就是对一些控件的应用上也有很多错误,比如说对于蛇身的shape控件时,对于蛇身的前进方向就调试的很多次,因为蛇身方向的传递是通过Shape控件来实现的,其后一个延续前一个的方向,在判断蛇是否撞到自己或者障

5、碍时,主要是看蛇头控件的边界属性值是否和蛇身或障碍相同等等。四、 课程设计总结 在课程设计之初我对很多地方都是很迷茫的,几乎可以说是无从下手的,于是我首先重新阅读了教材,使得对VB有一个更深的了解,然后又请教学长,得到了很多的帮助才完成了这个题目。通过这个程序,使我对VISUAL BASIC的部分内容有了一定的了解,能更加熟练地运用一些定义和控件明白了很多的知识,特别是以前上课时只了解到那些控件和数组还有语句的基本知识,但并没有实际操作多少,很多的地方都不明白到底要怎么做,比如关于判断产生的数字“1,2,3,4,5”是否出现在已有的数字上,或者是障碍上还是蛇身上的这类问题的解决,都是通过这次的

6、课程设计才有所了解的,虽然如次,依旧还有很多的不懂的地方,这些都是靠请教同学和老师才知道的,最另我高兴的是通过本次的课程设计 ,我懂得了怎样应用VISUAL BASIC来解决一些生活中的常见问题,也更加深刻的理解了计算机程序解决问题的方便。五、 附件(源程序) frmmain Option ExplicitOption Base 1Dim intdirect() As IntegerPublic m As IntegerDim intnum As IntegerDim timepast As IntegerDim inteat As IntegerPublic restart As Boole

7、anPrivate Sub Form_Load() ReDim intdirect(1 To 5) Dim i As Integer, j As Integer, n As Integer Dim maze(1 To 20, 1 To 20) As Integer Dim mazehead(1 To 4) As String Dim number As Integer Call openmaze Call openrecord m = 0 Picture1.Scale (0, 0)-(20, 20) For i = 1 To 20 Load Line1(i) Line1(i).Visible

8、= True Load Line2(i) Line2(i).Visible = True With Line1(i) .X1 = 0 .Y1 = i .X2 = 20 .Y2 = i End With With Line2(i) .X1 = i .Y1 = 0 .X2 = i .Y2 = 20 End With Next Call drawmaze Call drawsnake For number = 1 To 5 Call shownumber(number) NextEnd SubPublic Sub draweye() Shapeeyel.Height = 1 / 2 Shapeeye

9、l.Width = 1 / 2 Shapeeyer.Height = 1 / 2 Shapeeyer.Width = 1 / 2 Select Case intdirect(1) Case 0 Shapeeyel.Top = Shapes(1).Top Shapeeyel.Left = Shapes(1).Left + 1 / 2 Shapeeyer.Top = Shapes(1).Top + 1 / 2 Shapeeyer.Left = Shapes(1).Left + 1 / 2 Case 2 Shapeeyer.Top = Shapes(1).Top Shapeeyer.Left = S

10、hapes(1).Left Shapeeyel.Top = Shapes(1).Top + 1 / 2 Shapeeyel.Left = Shapes(1).Left Case 3 Shapeeyer.Top = Shapes(1).Top + 1 / 2 Shapeeyer.Left = Shapes(1).Left Shapeeyel.Top = Shapes(1).Top + 1 / 2 Shapeeyel.Left = Shapes(1).Left + 1 / 2 Case 1 Shapeeyer.Top = Shapes(1).Top Shapeeyer.Left = Shapes(

11、1).Left + 1 / 2 Shapeeyel.Top = Shapes(1).Top Shapeeyel.Left = Shapes(1).Left End SelectEnd SubPrivate Sub shownumber(a As Integer) Dim i As Integer, j As Integer Dim k As Integer Dim f As Boolean Randomize Do i = Int(Rnd * 20) j = Int(Rnd * 20) f = True For k = 1 To intnum If i = CInt(Shapes(k).Lef

12、t) And j = CInt(Shapes(k).Top) Then f = False Exit For End If Next If f = True Then For k = 1 To 5 If i = CInt(lblnumber(k).Left) And j = CInt(lblnumber(k).Top) Then f = False Exit For End If Next End If If f = True Then For k = 1 To m If i = CInt(Shapezi(k).Left) And j = CInt(Shapezi(k).Top) Then f = False Exit For End If Next End If If f = True Then Exit Do End If Loop lblnumber(a).Left = i lblnumber(a).Top = j lblnumber(a).W

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号