C语言迷宫游戏设计论文_第1页
C语言迷宫游戏设计论文_第2页
C语言迷宫游戏设计论文_第3页
C语言迷宫游戏设计论文_第4页
C语言迷宫游戏设计论文_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计(论文)说明书题 目: 系):专 业:学生姓名:学 号:指导教师: 2008 年 月 日摘 要随着科技的日益发展,计算机信息知识越来越被人们所认知和使用,在当今知识爆炸的时代计算机毫不疑问成为人们常用的日常工具,对于一个经常使用计算机的人来说,如何用好软件是一个很重要的问题,它对人们日常的很多操作有很大的帮助,对于一个技术人员,经常会接触到原代码,这就必须学会使用然现在大多数的软件的设计是通过其他高级语言以及采用系统集成软件编译,但它们的核心还是离不开使用此,简易迷宫程序的实现有利与在以后的开发项目中提供良好的思维方式。关键词:宫 编译摘要第一章 要代码第一章、随机产生一个固定大小的迷宫图(迷宫有唯一的一个入口,一个出口);2. 用图形的方式画出迷宫图;3. 根据该迷宫图作出判断,迷宫又从入口到出口的路线;4. 如果有路线的话,找到其中的一条路线,并画出来;5. 用穷举的方法找出所有的路线,找到其中步数最少的路线。要求1,迷宫要随机生成,需要使用随机函数,不需要迷宫一定有解。2. 要求3:判断迷宫是否有路线,如果有的话要找到步数最少的路线并画出来。3. 要求2主要体现在程序最后运行形式上,只要最后程序使用图形输出即可。4. 综上,程序要求随机生成一个迷宫,判断是否有最短路径,最后将迷宫图形化输出。二、迎画面,初始化迷宫数组,寻找路径,输出迷宫图形,结束画面,图形结束七个模块。这些函数模块各成体系,互不干扰,是系统的主要功能模块。图形驱动函数责图形界面驱动的初始化。2. 开始画面函数责生成开始画面。3. 初始化迷宫数组函数责随机生成一个只有一个出口和一个入口的迷宫。4. 路径寻找函数责寻找已经生成的迷宫的路径,调用函数环调用函数中需要调用:创建路径搜索树的根节点函数责生成搜索树的第一个节点。路径搜索树的生长函数责判断传递给这个函数的节点在四个方向是否可以生成节点,如果可以就调用函数调用函数路径搜索树中生成新的节点函数责在函数索树叶子链表的创建与增加函数责将新节点增加到待搜索节点链表中。5. 输出迷宫图形函数责将迷宫用图形化界面输出。6. 结束画面函数责生成结束画面。7. 图形结束函数责程序结束后关闭图形界面驱动。第三章 用一个N有有关迷宫的操作都在这个二维数组上进行0。在这个数组中,1代表有墙,0代表可以走的路,9代表入口,2代表树已经延伸到的路,5代表最短路径。2. 首先调用迷宫生成函数成一个随机的迷宫并记录在二维数组上0。3. 然后调用. 最后将迷宫用图形输出。生成迷宫边框,随机选择出入口是在迷宫的上下两边还是左右两边,选择后随即把出入口分到迷宫相对的两条边上,包括出入口位置都随机生成,用. 随机生成迷宫内部,具体做法是对迷宫内部每一个点进行随机数判断,当满足条件时把这个点标志为围墙,否则把这个点标记为通路。使用两个结构体(保存这个算法所需要的参数。2. 由于入口的特殊性,首先调用函数生成路径搜索树的第一个节点,即树根,并把这个结构体的指针返回。3. 树根作为第一个节点进入且只有一个方向)并调用函数调用函数. 用指针指针以过判断待搜索节点链表是否为空来控制循环,当链表为空时说明路径搜索树在上一轮生长过程中没有生长,即已经搜索完迷宫内所有可以到达的节点。5. 函数果是将记录出口的结构体的指针赋值给整个路径搜索树生成后,如果出口倒推到入口并将经过的每个迷宫点的值标记为5。6. 因为路径搜索树每次增长都要在所有分支上增长一个节点,故从树根到各个末端所走的路程是相同的,而且只有一个分支可以走到出口,而这条就是最短路径。7. 辟一个连续的内存空间给结构体后根据入口坐标判断出唯一的前进方向并在结构体中标志其方向信息为0,不能前进的方向标志为3,最后将这个内存空间的指针返回。次判断传递给这个函数的节点的四个方向,如果这个方向可以通行就调用函数把指向新节点的指针传递给函数据函数函数果链表为空则创建链表。*用于记录该节点的行坐标*/*用于记录该节点的列坐标*/*用于记录各个方向的属性*/*初始值为0,父节点方向为1*/*有下一个节点为2*/*没有下一个节点为3*/*用于指向其父节点,初始值为;各个结构体成员的用途:1) 每个点的坐标(来表示这个点的坐标);2) 各个方向的属性(来记录该节点在四个方向的情况,初始值为0,父节点方向为1,有下一个节点为2,没有下一个节点为3);3) 指向父节点的指针(来指向父节点,以便在完成整个迷宫路径搜索后倒推出最短路径)。最后这个结构体各节点构成的是一个树,这个树除了根节点外每个节点都有一个指向其父节点的指针。而这棵树的所有节点将遍布从出口开始迷宫内可以到达每一个节点,最后通过出口处的节点向上遍历到根节点完成最短路径的标记。待搜索节点结构体*指向新的树节点的指针*/*指向链表下一个节点的指针*/;/*待搜索节点的链表*/结构体成员的用途:1) 处于同一路径长度的路径树一个节点的指针(2) 链表下一个节点的指针(最后这个结构体的各个节点将构成一个链表,路径长度每增长一次将创建一个新的链表以存储处于同一路径长度的路径树的节点的指针。而路径数的增长将挨个判断(调用一次存储的处于同一路径长度的路径树节点。语言概述C 语言是1972年由美国的并首次在算机上使用。 它由早期的编程语言 发展演变而来。在1970年, 贝尔实验室的 的语言, 最后导了C 语言的问世。随着微型计算机的日益普及, 出现了许多C 语言版本。由于没有统一的标准,使得这些C 语言之间出现了一些不一致的地方。为了改变这种情况, 美国国家标准研究所(C 语言制定了一套成为现行的言的特点C 语言发展如此迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如 都是由C 语言编写的。用C 语言加上一些汇编语言子程序, 就更能显示C 语言的优势了, 象纳起来C 语言具有下列特点:1. 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。2. 即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C 语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。3. 言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另外C 语言也具有强大的图形功能, 支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大, 可以实现决策目的。4. 言还有一个突出的优点就是适合于多种操作系统, 如适用于多种机型。 制的大公司。该公司相继推出了一套些软件很受用户欢迎。中使用了全然一新的集成开发环境,即使用了一系列下拉式菜单,将文本编辑、程序编译、连接以及程序运行一体化,大大方便了程序的开发。1988年,加了图形库和文本窗口函数库等,据、代码、堆栈处在同一64件。还可对数学协处理器(支持8087/80287/80387等)进行仿真。+,包含了面向对象的基本思想和设计方法。作了更新,即也已经问世了。括至少需要448在任何彩、单色80列监视器上运行。支持数学协处理器芯片,也可进行浮点仿真,这将加快程序的执行。两张高密软盘)。同模式启动代码C?087库*同显示器图形驱动程序*文件)其中:上面的?分别为:T 型模式)S 模式)C 凑模式)M 型模式)L 模式)H 大模式) 只要将1#盘插入在 下键入:A此时屏幕上显示三种选择:1. 在硬盘上创造一个新目录来安装整个. 对样的安装将保留原来对选择项、颜色和编辑功能键的设置。3. 为只有两个软盘而无硬盘的系统安装里假定按第一种选择进行安装, 只要在安装过程中按对盘号的提示, 顺序插入各个软盘, 就可以顺利地进行安装, 安装完毕将在目录,行只要在目录下键入结根据以上论文的阐述,终得到迷宫游戏, 该设计实现基本完成了程序设计课题的要求,达到了预期的设计效果,很好锻炼了思维方式,为今后的学习工作垫定了坚实的基础。通过本次毕业设计,让我深切感悟到,作为一个编程人员,这次设计大大提高了我们综合运用所学理论知识解决实际问题和不断创新的能力。我设计的程序经验在我的工作中起到了至关重要的作用,在这次的毕业设计中虽然时间紧迫但我学会了很多,希望在日后的努力中能做出更完善的系统经过上机实践学习,使我对想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对有对函数调用的正确使用不够熟悉,还有对过实践,使我在这几个方面的认识有所提高。认到学好计算机要重视实践操作,不仅仅是学习是其它的语言,以及其它的计算机方面的知识都要重在实践,所以在以后的学习过程中,我会更加注视实践操作,使自己便好地学好计算机。等教育出版社,20042华大学出版社,19993子工业出版社,20024华大学出版社,19995华大学出版社,19966程序设计M华大学出版社,20047程序设计语言 M附录A: 数字1键进入人工控制模式;按w,s,a,左,右方向。开始时,按除数字1以外的任意键进入自动模式;小人由电脑控制。按主要代码#N;,/*开始*/0;0;0;,y=0;,j=0;,N);/* */*c:;*/c:;,0,3);00,180,;,N,0);x+=y+=x,y,0,120,);0,150,;ch=)=1)/*人工控制*/ch=)!=q)x,y,a:if(j0&bgi=0)if(xx-=;s:if(bgj=0)if(yy-=x,y,00);if(i=j=,0,3);50,260,);/*人工控制结束*/*电脑控制*/*并表示下一步运动方向*/*03分别表示西、北、东、南*/;i=j=0;bgi=0)x-=;i0&bgj=0)y-=;x+=j+;if(j0&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论