推箱子C课程设计报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. . 程序设计课程设计报告书 学生 : 孟祥煜 指导老师: 曾宇容 课程设计名称: 推箱子小游戏 班级: 软件11401 设计任务 介绍推箱子游戏的实现方法,并逐步介绍C语言图形编程的方法和技巧。在C语言编写软件WIN-TC上,涉及软中断、二维数组、键盘操作及图形化函数等方法,显示器中断寄存器的设置、二维数组的定义、键盘上键值的获取、图形方式下光标的显示和定位,以及部分图形函数的使用实现了一个完整的推箱子游戏界面,界面清晰可见。 设计目的 训练学生掌握C的数据结构和综合编程能力和游戏开发技巧等应用能力。 初步设想 推箱子是一款经典的益智小游戏,目的是在训练人的逻辑思考能力。在一个狭小的空间中,要求把木箱从起始位置处推放到指定位置。在空间中有地方限制,稍不小心就会出现箱子无法移动或者通道被堵住的情况,而且箱子只能推不能拉,所以需要玩家巧妙的利用有限的空间和通道,合理的移动次序和位置,才能完成任务。本游戏一共分14关,由易到难,每一关都随着关数的增加来增加难度,从而达到吸引游戏玩家的目的。 三 功能 1、菜单功能,玩家通过看目录按对应的键可以进入对应的功能菜单,其中1进入游戏,2选择游戏关卡,3游戏帮助指南 ,4退出游戏。 2 游戏功能: 玩家可以通过操纵键盘中的上下左右键进入游戏进行各种操作来完成游戏。 3 循环功能:当玩家正在游戏的时候如果某一步走错了,导致游戏无法完成,可以随时重新开始游戏来完成关卡,游戏过程中可以随时按Ctrl+V退出游戏。 4 顺序功能: 当玩家完成了某一关之后,随着进入下一关门可以按顺序进入下一关,继续开始更有挑战的关卡,如果该关是最后一关,则显示通关完成。 总体设计 功能模块设计 函数功能描述本程序包括5个模块,分别是初始化模块、画图模块、移动箱子模块、移动小人模块和功能控制模块。各个模块功能的功能描述如下: (1)初始化模块。该模块包括屏幕初始化和游戏第一关到第最后一关的初始化。屏幕初始化用于输出欢迎信息和操作提示,游戏每一关的初始化是构建每一关的关卡。 (2)画图模块。该模块主要是被其他模块调用,用于画墙、在空地画箱子、在目的地画箱子、画小人和画目的地。 (3)移动箱子模块。该模块用于移动箱子,包括目的地之间、空地之间和目的地与空地之间箱子的移动。 (4)移动小人模块。该模块是几个功能函数的集合,包括屏幕输出功能、指定位置状态判断功能和关卡重置功能。 (5)功能控制模块。该模块是几个功能函数的集合,包括屏幕输出功能、指定位置状态判断功能和关卡重置功能。 推箱子游戏 推箱子游戏 初始化模块 画图模块 移动箱子模块 移动小人模块 功能控制模块 任务执行流程图 数据流程图 游戏从第一关开始,按上下左右方向键控制小人移动来推动箱子,可以在游戏中的任何时候按Esc键退出。如果游戏无成功希望,可以按CTRI+V回到当前任务的开始状态;如果成功完成当前关,则进入下一关,如果当前关是最后一关,则显示通关信息,提示游戏结束。 小人移动流程图 小人移动的方向有4个,move()函数(处理小人移动的函数)对这4个方向移动的处理都一致,只是调用函数时的参数有所不同。首先判断小人移动的方向,然后根 据小人所处世的当前状态、下一步状态或者下下一步状态进行适当的处理。 数据结构设计 设置全局变量 定义int v[13][17],用于记录箱子在屏幕中哪个坐标上。其中“0”表示什么都没有。定义了int num_guan指现在的关数,int num_xiang;箱子的个数,int move_num人行走的次数;int push_num人推箱子的次数;定义数组int M[2]表示人所在的位置; M[0] 是人所在位置的横坐标 M[1]是人所在位置的纵坐标;定义数组int door[2]表示门所在的坐标,door[0]是“下一关门”的横坐标,door[1]是“下一关门”的纵坐标。 3主函数 下面让我们来看看主函数的操作流程,主函数首先进入游戏目录,提醒游戏玩家输入对应的数字来进行的对应的操作,如果玩家输入1则进入游戏第一关,输入2选择关卡进入,输入3显示游戏帮助菜单,帮助玩家更好的理解这个游戏的规则,输入4退出游戏。进入游戏后,首先调用chushi1()函数初始化要使用的页面,之后程序进入play()函数,play()函数中通过if语句通过判断i的值来初始化不同的关卡(设置好关卡的人,箱子,箱子的目的地,门),接着程序进入control函数通过获取玩家在键盘上的操作来分别对游戏人物进行操作,最后通过wancheng函数来对操作进行判断,如果判断成功的话则进入下一关游戏。反之则失败。一直通过到最后一个则通关成功

文档评论(0)

hkfgmny + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档