最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

推箱子 VB课程设计说明书

来源:动视网 责编:小OO 时间:2025-09-25 16:34:01
文档

推箱子 VB课程设计说明书

第1章课程设计目的与要求11.1课程设计目的11.2课程设计的实验环境11.3课程设计的预备知识11.4课程设计要求1第2章课程设计内容22.1游戏介绍22.2游戏设计22.3游戏实现12第3章课程设计总结14参考文献16第1章课程设计目的与要求1.1课程设计目的本课程的课程设计实际是学生学习完《可视化编程技术》课程后,进行的一次全面的综合训练,其目的在于加深对可视化编程技术基本知识的理解,掌握运用VB开发应用程序的基本方法及基本技巧。1.2课程设计的实验环境硬件要求能运行Windows9.X
推荐度:
导读第1章课程设计目的与要求11.1课程设计目的11.2课程设计的实验环境11.3课程设计的预备知识11.4课程设计要求1第2章课程设计内容22.1游戏介绍22.2游戏设计22.3游戏实现12第3章课程设计总结14参考文献16第1章课程设计目的与要求1.1课程设计目的本课程的课程设计实际是学生学习完《可视化编程技术》课程后,进行的一次全面的综合训练,其目的在于加深对可视化编程技术基本知识的理解,掌握运用VB开发应用程序的基本方法及基本技巧。1.2课程设计的实验环境硬件要求能运行Windows9.X
第1章 课程设计目的与要求    1

1.1 课程设计目的    1

1.2 课程设计的实验环境    1

1.3 课程设计的预备知识    1

1.4 课程设计要求    1

第2章 课程设计内容    2

2.1 游戏介绍    2

2.2 游戏设计    2

2.3 游戏实现    12

第3章 课程设计总结    14

参考文献    16

第1章

课程设计目的与要求

1.1 课程设计目的

本课程的课程设计实际是学生学习完《可视化编程技术》课程后,进行的一次全面的综合训练,其目的在于加深对可视化编程技术基本知识的理解,掌握运用VB开发应用程序的基本方法及基本技巧。

1.2 课程设计的实验环境

硬件要求能运行Windows 9.X操作系统的微机系统。

软件:Microsoft Visual Basic 6.0

1.3 课程设计的预备知识

熟悉Visual Basic 6.0程序设计的基本语法知识及常用技巧。

1.4 课程设计要求

按课程设计指导书提供的课题,每个小组设计一个完整的小游戏应用程序。要求根据规定设计游戏的具体要求,按照应用程序的设计步骤和VB的基本知识应用程序的分析与实现。应根据后面给出的基本学时分配合理安排设计时间,并完成各方面的设计。选择同一题目的同学,可以共同协作完成一个应用程序的开发任务。要求书写详细的设计说明书,对有复杂的代码段和程序段的部分,应画出程序流程图,写出全部的代码。在界面设计中,需画出每个窗体的布局,进行属性说明,杜绝雷同。

第2章

课程设计内容

2.1游戏介绍

2.1.1 游戏规则

    游戏要求:游戏开始时自动进入第一关,状态栏里显示操作提示。可以通过方向键控制小人的移动,按空格键重新开始本关,或者用回车键、翻页键选择其他关;当按下键时退出本游戏。在移动过程中,如果前方是一个箱子,并且箱子的前面没有墙或其他箱子阻挡,那么就可以把它向前推动一格。游戏的任务是把所有的箱子都推到标记处。

2.1.2 游戏说明

游戏的意图是要求玩家推动箱子完成三个箱子任务,左右键用于走动,SHIFT键用于推动箱子,CONTROL用于跳,SHIFT和CONTROL是推动箱子一起跳,若游戏失败可重新开始游戏。

2.2游戏设计

2.2.1 界面设计

图2-1界面设计

2.2.2 属性设置

Form1(map.frm)属性值:

控件名Form1.FormHscroll1.

HScrollBar

Pictrue1.PictureBoxLabel2.Label
属性值
NameForm1Hscroll1Picture1Label2
BackColor&H8000000F&

&H8000000F&

&H8000000F&

CaptionMenace Map editorLeft
Value1
VisibleTrueTrueTrueTrue
frmBlt(BLT.FRM)属性值:

控件名frmBlt.FormTimer1.timer
属性值
NamefrmBltTimer1
BackColor&H8000000F&

CaptionMenace
EnabledTrueFalse
Interbal100
    

Splash(splash.frm)属性值:

控件名Command1.commandButtonImage1.ImageLabel1.labelSplash.Form
属性值
NameCommand1Image1Label1splash
Appearance1-3D1-3D1-3D1-3D
CaptionPlay MenaceThe left and right arrows walk menace.  Menace
VisibleTrueTrueTrueTrue
CancelFalse
BorderStyle0-None0-None2-Sizable

图2-2属性设置

2.2.3编程思路及代码

游戏思路:使用棋盘法设计推箱子游戏

 “棋盘”游戏的种类丰富,俄罗斯方块,推箱子,象棋,五子棋......等等这些都可以归类到“棋盘”游戏中来。面对这类游戏设计的时候,我本人的见解是首先对“棋盘”做研究,实在不行再去研究“棋子”。换句话说,就是以游戏中的活动区域为研究对象,像象棋就是他的棋盘,俄罗斯方块就是他整个的方块的活动区域。我们这里姑且就把他叫做“棋盘法”。 

 一. “棋盘法”基本实现方法      

 “棋盘法”实现起来其实很简单,一般来说就是把棋盘看作一个网格,那么我们就把他看作与之对应的二维数组。然后适当组织数据结构去抽象旗子,制定规

则,这样就很容易实现游戏。

 二. “棋盘法”的优缺点

 任何一个算法或思想都是有优缺点的,而我们的“棋盘法”的最大优点就是可以方便我们组织数据结构,简化了游戏规则的编写,使我们编程时思路比较清晰直观,通常就是直接根据游戏实际规则编写就可以了,这个我们会以实例加以说明。然而他最大的缺点就是可能耗费大量内存,试想,如果我们的棋盘规格很大,那我们就得开辟一个比较大的二维数组,并且如果你要将代码移植到单片机,ARM等硬件平台上。那你就不得不考虑自己的方法问题,在这些硬件平台上内存资源是极其宝贵的。也许有朋友会说那在PC机上总可以的。的确现在PC机资源丰富,功能强大,可有时候还是不能如你所愿。一个很经典的例子就是五子棋的人工智能,为了让五子棋在人机对战中具备攻防兼备的智能,我们只有开辟一个于棋盘规格相呼应的二维的树组来记录棋盘上各点的胜算几率,(有兴趣的朋友可以到网上去找找资料)这样的话,在DOS下你就只能开辟一个约 10X10 的棋盘,即使在WINDOWS下也只能大约 16 X 16 的棋盘。(当然,这里是说直接开辟数组,采用特别技术的不算)。所以说,这个“棋盘法”也是有他自己的的。

游戏代码:

Form1(map.frm)代码:

Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long

Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long

Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long

Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long

Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long

Dim ddsFront As DirectDrawSurface2  

Dim fx As DDBLTFX

Dim spnx%(40), spny%(40), spnw%(40), spnh%(40), spnox%(40), spnoy%(40)

Dim mode%  , anim%  , animshift% ,bname$(30) ,bcells%(30),bchar%(30, 30) ,bxo%(30, 30),byo%(30, 30),blockx%(30) ,blocky%(30),blockcell%(30),blockmode%(30) ,blockcount% ,level%

Dim map(40, 6) As Integer 

Dim mapl%, mapv% 

Private Function CreateDDSFromBitmap(dd As DirectDraw2, ByVal strFile As String) As DirectDrawSurface2

    Dim hbm As Long                

    Dim bm As BITMAP                

    Dim ddsd As DDSURFACEDESC       

    Dim dds As DirectDrawSurface2   

 ,mhdc , clr As Long   

  GetObject hbm, Len(bm), bm

Private Sub Form_Load()

        Get #1, a% * 6 + 6, spnh%(a% + 1)    

Private Sub DrawNextFrame()

               If blockx%(a%) Mod 60 = 0 Then                        

                    Else                                                      map((blockx%(a%) - 300) \\ 60, (blocky%(a%) - 5) \\ 60) = blockcell%(a%)

                 blockmode%(a%) = 0                         

                            If animshift% Then startmove 1                      

Private Sub Timer1_Timer()

End Sub

If t.Top >= 0 Then

End If

End Sub

If Not flag% Then

                ct% = ct% + 1            

 Select Case mode%

   

End If

End Sub

2.3 游戏实现

2.3.1程序调试及测试

程序调试:

图2-3程序调试

测试:

图2-4 测试

2.3.2游戏运行

图2-5游戏运行

玩家即可进入游戏。

第3章 课程设计总结

我的课程设计内容是设计游戏——推箱子。在这次课程设计中,我运用了VB所学的知识,并且能够较熟练的使用一些编程语句。

回顾起此次课程设计,至今我们仍有很多感触。的确,自从拿到题目到完成整个编程过程,从理论到实践,在这整整半个学期的日子里,学到过很多很多的东西,在做这个课程设计时,不仅可以巩固了以前所学过的知识,而且还学到了很多在书本上没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中到应用,才能真正提高自己的实际动手能力和思考的能力。

在设计的过程中遇到不少的问题,可以说得是困难重重,这毕竟新做的,难免会遇到各种各样的问题。同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固。通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。

其中有很多编程问题,起初,我不知道从什么地方入手,后来,慢慢的进入了状态。我们组做的是一个推箱子的设计,内容包括很多,所以我们组员改为分工合作,经过一星期的努力,我们完成了整个程序,但是总是有很多错误出现,有好多是些小问题,这都是我们粗心大意造成的,所以设计程序一定要仔细,不容一点的马虎。当然也有大问题,关于文件的操作,是我们最大的问题,不过,后来经过反复琢磨和修改,还是完成了这些任务。

在这过程中,我们难免也会产生一些小矛盾,当然这是不可避免的。产生小矛盾并不要紧,重要的是我们如何去解决它。为什么会产生这些矛盾,以怎样的方式去解决它,这是我们应该去考虑的问题。我想经过这样的一个过程我们会学到很多,学会了怎样去和别人沟通,理解别人所做的事,别人也会宽容的对待我们,从而我们就在无形之中加强了我们的人际交往能力。这个经验对我们以后的人生将会发挥很大的作用。毕竟我们是生活在人类这个群体之中的。假如世界上只剩下一个人,那么他不可能长久的生活下去的。

一个团队单靠一个人或者队里几个人的努力是完不成整个队的任务的,需要队里所有人的共同努力。每个人都分配任务,并且是适合他的任务。要将不适合的任务分配给一个人,那么他将很难完成。即使完成了,那一定是花很大的努力和精力去做了,那样效率就不高了。我们都希望在最短的时间里达到最高的效率。

生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。

本次课程设计,最后成功的完成了,这是老师让我们运用知识的很好的机会。

参考文献

[1] 汉清计算机工作室.Visual Basic 6.0 数据库开发实例.北京:机械工业出版社,2000:10-54

[2] 何旭洪.Visual Basic 数据库开发实例导航.北京:人民邮电出版社,2002:75-86

[3] 孙健鹏.VB数据库开发实例解析.北京:机械工业出版社,2005:204-283

[4] 王汉新.Visual Basic程序设计.北京:科学出版社,2002:128-197

[5] 陈惟斌.Visual Basic 6.0开发指南.北京:清华大学出版社,2001:100-201

[6] 张春葆.VB数据库系统设计与开发.北京:清华大学出版社,2006:273-294

[7] 李金玲.Access 2002数据库开发即时应用.北京:人民邮电出版社,2002:267-308

[8] 张之洞.Visual Basic 6 Harry M.北京:电子工业出版社,2005:128-231

[9] 李晓黎,张巍.Visual Basic应用系统开发与实例.北京:人民邮电出版社,2003:143-284

[10] 刘瑾.VB从入门到精通.北京:人民邮电出版社,2001:-127

文档

推箱子 VB课程设计说明书

第1章课程设计目的与要求11.1课程设计目的11.2课程设计的实验环境11.3课程设计的预备知识11.4课程设计要求1第2章课程设计内容22.1游戏介绍22.2游戏设计22.3游戏实现12第3章课程设计总结14参考文献16第1章课程设计目的与要求1.1课程设计目的本课程的课程设计实际是学生学习完《可视化编程技术》课程后,进行的一次全面的综合训练,其目的在于加深对可视化编程技术基本知识的理解,掌握运用VB开发应用程序的基本方法及基本技巧。1.2课程设计的实验环境硬件要求能运行Windows9.X
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top