已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编程课程设计报告学生:孟秀宇老师:增雨用的课程设计名称:推箱子游戏类别:软体11401一、设计任务介绍了推箱子游戏的实现方法,逐步介绍了c语言图形编程的方法和技巧。c语言编写软件WIN-TC包括软中断、二维阵列、键盘动作和图形函数、设置显示器中断寄存器、定义二维阵列、从键盘获取键值、在图形模式下显示和定位光标、使用某些图形函数,以及界面清晰可见的完整推盒游戏界面。二、设计目的训练学生掌握c的数据结构、集成编程能力和游戏开发技术等应用能力。初步设想推盒是训练逻辑思维能力的经典益智游戏。在小空间里,要求把木箱从起始位置推到指定位置。空间有限制,如果稍不小心,箱子就不能移动,或者通道被堵住,箱子不能被推,所以玩家必须巧妙利用有限的空间和通道、合理的移动顺序和位置才能完成工作。这个游戏共分为14个领域,目的是随着难度的提高,吸引玩家。三个功能1、菜单功能,游戏玩家可以查看目录,按相应的键进入相应的功能菜单。其中1是游戏,2是游戏级别,3是游戏帮助指南,4是游戏结束。2游戏功能:玩家可以操纵键盘上、下、左、右键,通过进入游戏的各种操作完成游戏。3循环功能:如果玩家在游戏过程中由于错误的步骤而无法完成游戏,您可以随时重新启动游戏以完成级别,您也可以在游戏过程中随时按Ctrl V键结束游戏。4序功能:玩家完成某一关口后,越进入下一个关口,就可以依次进行到下一个关口,继续开始更具挑战性的关口,如果该关口是最后一个关口,则表示通关完成。三、总体设计1、功能模块设计函数功能说明此程序由5个模块组成:初始化模块、图片模块、移动框模块、移动小人模块和功能控制模块。每个模块功能的功能说明如下:(1)初始化模块。本模块包括屏幕初始化和游戏第一步到最后一步的初始化。屏幕初始化用于输出启动消息和操作提示,是构成游戏每次关闭的级别。(2)图画版模块。此模块主要由其他模块调用,这些模块用于绘制墙、在开放空间绘制长方体、在目标上绘制长方体、绘制邮戳或绘制目的地。(3)移动箱子模块。此模块用于移动长方体,包括在目标之间、开放空间之间以及目标和开放空间之间移动长方体。(4)移动小人模块。这个模块是多个功能函数的集合,包括屏幕输出功能、指定的位置状态判断功能和级别重置功能。(5)功能控制模块。这个模块是多个功能函数的集合,包括屏幕输出功能、指定的位置状态判断功能和级别重置功能。盒装游戏初始化模块图片模块移动长方体模块移动小人模块功能控制模块作业执行流程图数据流图游戏从第一个传球开始,通过上下左右箭头键控制小人的移动,从而在游戏过程中随时按Esc键结束。如果您不希望游戏成功,可以按CTRI V返回到当前操作的开始状态。如果当前关闭成功完成,则转至下一个关闭,如果当前关闭是最后一个关闭,则显示通关信息,通知游戏结束。小人移动顺序小人移动的方向有四个,move()函数(处理小人移动的函数)对这四个方向移动的处理方式相同。但是,调用函数时的参数不同。先判断小人的移动方向,然后根据小人处世的当前状态、下一个状态或下一个状态适当处理。2、数据结构设计设定全域变数定义int v1317,以记录方块在萤幕上的哪个座标。其中“0”表示什么都没有。Int num_guan是当前封闭数,intnum _ sharing箱子数,int move_num人步行的次数;Int push_num人员拉伸长方体的次数;定义阵列int M2以指示人员所在的位置。M0是人所在位置的横坐标M1是人所在位置的纵坐标;定义阵列int door2表示门所在的坐标,door0是“关闭下一个门”的横坐标,door1是“关闭下一个门”的纵坐标。3周函数现在,我们来看看基本函数的工作流程。基本函数首先进入游戏目录,提醒玩家输入相应的数字,玩家输入1后进入游戏第一阶段,输入2选择级别,输入3显示游戏帮助菜单,帮助玩家更好地理解游戏规则,输入4结束游戏。进入游戏时,首先调用chushi1()函数初始化要使用的页面,然后程序启动play()函数,通过play()函数中的if语句确定I的值,初始化不同级别(设置了级别的人、长方体、长方体的目标、门),然后程序进入control函数,通过从键盘获取播放器的动作,单独操纵游戏角色,然后wann反之则失败。通过到最后,通关就成功了。4代码设计(或编程)处理单个模块或函数可以将整个系统程序分解为单独的模块,即c的函数,以便分别编译。整个程序调整完成每个模块的默认单独编译后,使用主函数合并它们,实现调用,执行输出数据的可靠性、输入数据和系统的容错测试。5程序手册功能模块1.play()2.control()3.Daying()4.wanchen()分析1.play()Play()函数的功能主要是当进入1的游戏系统时,自动按顺序进行游戏,完成每个游戏,然后继续下一步。其中,变量I控制级别off,j继续到下一个off,首先使用if语句从开始初始化I的第一个off是通过play()函数中包含的内嵌函数control()函数控制游戏中人和框的各种行为。control()函数return 0。换句话说,j=control()的j等于0,游戏进入下一个off。结束14次后,j=结束1次。Void play()Int i,j=0;for(I=1);I=20I)tem=0;system( cls );/清除屏幕if(I=1)chushihua _ Guan 1();/设定楼层1的墙、框和人。门else if(I=2)chushihua _ Guan 2();else if(I=3)chushihua _ Guan 3();else if(I=4)chushihua _ Guan 4();else if(I=5)chushihua _ Guan 5();else if(I=6)chushihua _ Guan 6();else if(I=7)chushihua _ Guan 7();else if(I=8)chushihua _ Guan 8();else if(I=9)chushihua _ Guan 9();else if(I=10)chushihua _ Guan 10();else if(I=11)chushihua _ Guan 11();else if(I=12)chushihua _ Guan 12();else if(I=13)chushihua _ Guan 13();else if(I=14)chushihua _ Guan 14();j=control();if(j=1)系统( cls );Return2 control()Control()在该程序中主要控制游戏中角色和长方体的移动,当玩家在键盘上执行各种动作时,它会有不同的反应。模块中定义了command变量,以便播放器从键盘接收各种操作。首先调用getch()函数,将初始值command=(“空字符”)22赋给command,进入接口图表初始化,根据num_guan的大小具体初始化相应级别(框、人、墙中的图标),然后模块进入“控制阶段”如果通过Getch()函数command再次获得字符,则通过command= h (即 h ),当人向前移动时,相应的( p k m)是人的操作,人的上下左右推箱子,人的进行玩家输入ctrl c时,如果游戏重新启动,则ctrl函数将调用win变量以确定游戏是否完成,如果调用包含的函数wanchen()=(win=wanchen()=1vdoor0door1游戏过程播放器在每个阶段都通过控制Daying()函数控制屏幕上目标的移动来实现游戏的目的。Int control()Int winInt temmChar command/保存传入命令While(1)command=getch();/输入文字/*if(command=1)If(command=22)if(num _ Guan=1) system( cls );chushihua _ Guan 1();else if(num _ Guan=2) system( cls );chushihua _ Guan 2();else if(num _ Guan=3) system( cls );chushihua _ Guan 3();else if(num _ Guan=4) system( cls );chushihua _ Guan 4();else if(num _ Guan=5) system( cls );chushihua _ Guan 5();else if(num _ Guan=6) system( cls );chushihua _ Guan 6();else if(num _ Guan=7) system( cls );chushihua _ Guan 7();else if(num _ Guan=8) system( cls );chushihua _ Guan 8();else if(num _ Guan=9) system( cls );chushihua _ Guan 9();else if(num _ Guan=10) system( cls );chushihua _ Guan 10();else if(num _ Guan=11) system( cls );chushihua _ Guan 11();else if(num _ Guan=12) system( cls );chushihua _ Guan 12();else if(num _ Guan=1113) system( cls );chushihua _ Guan 13();else if(num _ Guan=14) system( cls );chushihua _ Guan 14();If (command=-32)/F11,f 123360-123,-122temm=0;command=getch();if(temm=0 command=h(vm0-1m1=授权的| | v m 0-1) vM0-1M1=ren;/H表示将箱子推回家。vM0M1=0;V m 0-2 m 1=授权;M0=M0-1;move _ num=move _ num 1;push _ num=push _ num 1;Temm=temm11if(temm=0 command=p(vm01m1=授权的| | vm1mm vM01M1=ren;Temm=temm11/P将推式箱子指向房子。vM0M1=0;V m 0 2 m 1=授权;M0=M01;move _
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 摩托车智能化改装方案创新创业项目商业计划书
- 《歌德谈话录》(艾克曼)阅读测试题及参考答案
- (国铁)动车专业职业技能竞赛考试题库
- 2025年互联网行业元宇宙营销水平考试-虚拟汽车展厅互动式营销方案设计考核试卷
- 一年级语文上册语文园地二教案
- 2024年定西市安定区招聘城镇公益性岗位人员真题
- 2025年莆田辅警协警招聘考试真题附答案详解
- 2025年西宁辅警招聘考试真题含答案详解(b卷)
- 2025年盐城辅警协警招聘考试备考题库及一套参考答案详解
- 2025年黔南布依族苗族自治州辅警协警招聘考试备考题库带答案详解
- 《临床超声诊断基础》课件
- GB/T 45472-2025架空和综合管廊用预制保温管道
- 《狐假虎威》课本剧剧本:演绎经典寓言的新方式
- 食品用纸包装-容器等制品生产许可实施细则
- 地下室买卖协议完整7篇
- 卫星通信网络安全防护机制-全面剖析
- 智慧树知到《大话机器人(青海大学)》2025章节测试附答案
- 消防设施施工安全保障措施
- 《康复评定技术》课件-第十七章 常见神经疾病的评定技术
- 华为客户接待流程
- 多缸高能液压圆锥破碎机安全操作规程
评论
0/150
提交评论