C语言课程设计--推箱子.doc_第1页
C语言课程设计--推箱子.doc_第2页
C语言课程设计--推箱子.doc_第3页
C语言课程设计--推箱子.doc_第4页
C语言课程设计--推箱子.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

VIP免费下载

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

文档简介

山东交通学院C语言课程设计推箱子游戏院(系)别 信息工程系 班 级 信息093 学 号 090810313 姓 名 陈新龙 指导教师 * 时 间 2010-04-062010-04-10 课 程 设 计 任 务 书题 目 推箱子 系 (部) 信息工程系 专 业 计算机科学与技术 班 级 信息093班 学生姓名 陈新龙 学 号 090810313 04 月 06 日至 04 月 10 日 共 1 周指导教师(签字) 系 主 任(签字) 2010年 04月 11日一、设计内容及要求:(1)箱子只能推动而不能拉动。一次只能推动一个箱子。(2)在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况。(3)本游戏的目的就是把所有的箱子都推到目标位置上。(4)此游戏目的是在训练你的逻辑思考能力。二、设计原始资料:本游戏的目的就是把所有的箱子都推到目标位置上。箱子只能推动而不能拉动。一次只能推动一个箱子。经典的推箱子是一个来自日本的古老游戏,目的是在训练你的逻辑思考能力。在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道!三、设计完成后提交的文件和图表1计算说明书部分 假设数字0代表空地,数字1代表墙壁,数字2代表非游戏的填充内容(非必须内容),可是地图看起来规则,数字3代表目的地,数字4代表箱子,数字6代表人。 那么人移动到空地上时数字值的变化为:6+0=6; 人移到目的地时其位置的数值变化为:6+3=9; 箱子移动到空地时数值的变化为:4+0=4; 箱子移动到目的地时数值的变化为:4+3=7; 再就是每一次的移动都必须根据实际情况,来改动原位置和移动位置的数值,还原出地图原样模型。2图纸部分: 程序流程图 否 否 是 是 是 是 否 否 否否 是 是是 否开始输入1或2或3 或q输入1输出地图1输入按键input=q推箱子移动箱子都到目的地第一关结束在输入按键Input=y输入2输出地图2输入按键Input=q推箱子移动箱子都到目的地游戏通关 结束四、进程安排第一天:分析问题,找出大体的设计思路。第二天:构造出程序大体框架,即各种功能模块的组合。第三天:分别写出个功能模块程序的源代码。第四天:讲个功能模块加入主程序中,并实现所有的程序基本功能。第五天:优化程序中的不足之处,优化显示界面,添加辅助功能模块增加程序的趣味性。使程序软件更加适宜用户的操作和娱乐需要。第六天:准备程序答辩。五、主要参考资料1谭浩强,C程序设计(第三版)。北京:清华大学出版社,2005(2007重印) 2马安鹏.Visual C+程序设计导学。北京:清华大学出版社,20023 H.M.Deitel,P.J.Deitel. Small C+ How to Program.2006.4Richard C.Leinecker,Tom Archer. Visual C+ 6 宝典.张艳,张谦译.北京:电子工业出版社,19995 Beck Zaratian.Microsoft Visual Visual C+ 6.0程序员指南.希望图书创作室译.北京:北京希望电脑公司出品,1998成 绩 评 定 表口试(答辩)成绩报告成绩总评成绩摘要私達実践能力高、学知識運用行更創造、学校特1週間手配、私達Visual C+課程設計実習行.詳説明Visual C+6.0環境下、過程設計、箱押遊戯。機能、字符輸入。字符“a”向左走代表、字符“s”代表下歩、字符“d”向右走代表、字符“w”向上行代表、人制御箱行先押勝利。目的人鍛錬能力思惟。以下課程仕様通過、順序説明提示操作、手順説明調節、総括方面開発、手順詳説製造過程和作用、諸般執行操縦。关键字:箱遊戯押,VC+6.0, 源手順目 录前 言11 课程设计概述21.1推箱子游戏软件功能概述21.2Visual C+6.0概述22推箱子游戏软件总体设计22.1推箱子游戏软件总体设计思想22.2总体设计流程图43推箱子游戏软件详细设计53.1两个主要问题53.1.1 地图的生成53.1.2 人或人和箱子的移动54程序测试64.1菜单界面64.2游戏中的界面95课程设计总结13致谢13参考文献146附录(程序源代码)15山东交通学院课程设计报告前 言随着计算机技术的发展,可视编程技术占有了越来越重要的作用。Visual C+6.0 是一种功能强大行之有效的可视化编程工具。因此此软件是在Visual C+6.0环境下编写的。对于我们,随着学习的深入,已经大体掌握了Visual C+6.0环境下的程序开发。为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于Visual C+6.0环境的软件开发,先以推箱子游戏作为开始,对Visual C+6.0环境和C语言的模块编程设计进行回忆和熟悉,有利于促进面向对象程序设计思想的理解,使得在此基础上的下一个软件的开发进行的更加顺利。本文档详细叙述了基于Visual C+6.0环境下的推箱子游戏软件的设计过程以及程序源代码。本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。此次推箱子游戏软件的开发目的是使我们用最基础的C语言程序设计的方式来思考和解决问题的能力,并且可以掌握二维数组的使用、循环控制的使用、地图的设计和使用以及C语言语法。本文档的安排如下:第一章 主要介绍了对面向对象C+语言以及Visual C+6.0编程环境。第二章 主要的介绍说明了推箱子游戏软件的编程思想和详细设计。第三章 主要对推箱子游戏软件进行调试,运行程序并截图,显示运行界面和结果。第四章 主要介绍了软件开发过程中遇到的一些问题,对该软件进行的一个总结。程序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限,推箱子游戏软件和文档中不免会出现一些不期待的错误,望文档读者能够理解和体谅,并欢迎提醒和纠正,在此表示感谢以及敬意。36班级:信息093 姓名:陈新龙 学号:0908103131 课程设计概述1.1 推箱子游戏软件功能概述在一个狭小的仓库中,把木箱放到指定的位置,通过控制人的走向来推箱子移动,箱子只能推动不能拉动,一次只能推动一个箱子。稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道。通过此游戏可以锻炼一个人的逻辑思维能力。1.2 Visual C+6.0概述Visual C+是微软公司的重要产品之一, 是一种功能强大行之有效的可视化编程工具。它提供了MFC类库,使用户可以方便的开发自己想实现的功能。Visual C+6.0的主要特点:(1)自动化和宏功能。(2)可以灵活地定制工具栏和菜单。(3)可以直接运行和调试程序,还可以使用宏语言来自动操作调试器。(4)支持Internet连接。(5)一个新的便捷的项目系统可以允许一个工作区内包含多个不同的项目类型。(6)在工作区内可以包含多个并列的工程文件。(7)可以在对话框中使用WizardBar将程序同可视化元素联系起来。(8)Find in File命令支持两个独立的输出窗格,可以保存上一次搜索的结果。这些新特性可以更好地利用Visual C+开发工具进行Windows应用程序开发。2 推箱子游戏软件总体设计2.1 推箱子游戏软件总体设计思想推箱子游戏软件的功能是锻炼人的逻辑思维能力。推箱子游戏软件的功能模块有:(1)提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能按相应的键进入该功能。山东交通学院课程设计报告(2)地图的生成,用二维整型数组来构成地图,其中数字代表特殊的符号。(3)移动,人或人和箱的移动,接受用户输入的一个字符,控制人的走向,并且可以在允许的情况下推动箱子。(4)时间的统计,可以看整个程序(相当于游戏)运行时所用的时间。(5)清屏功能,使用了清屏函数,当在游戏中时可以直接返回主菜单,(6)利用了辅助色彩函数,使游戏界面更加好看,美观。在源程序中声明并定义了void draw_map(int map1012) /地图函数,void move(int map1012) /移动函数使用了:#include /标准输入输出头文件#include /system函数的头文件#include /getch函数的头文件#include time.h /调用时间函数的头文件多种头文件。 程序中还应用了全局变量:char le; /控制关数的全局变量char input; /接收按键字符程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。班级:信息093 姓名:陈新龙 学号:0908103132.2 总体设计流程图程序开始菜单界面面友好界面请选关数清屏界面返回菜单退出界面程序结束欢迎玩【推箱子游】 】1或2关每次按键都会执行清屏功能按q键控制按3键进行游戏1,2关游戏胜利图212 总体设计流程山东交通学院课程设计报告3 推箱子游戏软件详细设计3.1 两个主要问题设计中的两个主要需解决的问题是:怎样生成地图、怎样实现人或人和箱子的移动。3.1.1 地图的生成 设计中用二维整型数组中的数字元素表示不同的物体,比如0代表空地,1代表墙,2代表非游戏的填充内容(非必须内容),可以使地图规则,3代表目的地,4代表箱子,6代表人。然后用一个switch语句给每个数字赋予不同的符号,在输出二维数组,生成地图。3.1.2 人或人和箱子的移动设计中要想使人移动,首先要找到人的起始位置,然后才能开始移动。人向四个方向移动的原理是相同的,我们可以先研究一个方向的移动,找到人的位置后,以人向上走为例,因为向上走嘛(可以通过 数组下标表示)。(1)要判断人前面(上一行),是否为空地,是空地则可以移动,移动后判断并改变人员原位置的数值元素和空地原位置的数值元素;否则不移动。(2)如果人前面是目的地,人也是可以移动的,同样判断人原位置数值元素,并改变人员位置的数值元素和前一位置的数值元素。(3)如果人前是在空地上的箱子。如果箱子前面又是空地,则可以移动,改变箱子前位置的数值元素,还是判断原位置的数值元素,然后改之;如果箱子前为目的地,和上面说的一样移动和改数值元素,只是多了计分这一步。(4)如果人前是已经进入目的地的箱子。如果箱子前又是空地,则可以移动箱子,但是要减分,改变空地位置的数值元素,判断人和箱子原地的数值元素,并改之;如果箱子前是另一目的地,方法同上,只是不减分。用分数控制箱子是否已全在目的地。(5)每一次的移动,必须要清屏,然后再显示一次地图,这样便可以实现人或人和箱子的移动。 班级:信息093 姓名:陈新龙 学号:090810313 4 程序测试4.1 菜单界面图311 菜单界面如上图311所示,该程序为用户提供菜单界面,用户可以对程序的各种功能进行选择,方便用户使用。选择1、2、3、q并按键进行操作,来实现不同的功能。友好的界面为用户提供优质的服务。山东交通学院课程设计报告 图312 菜单选择1时的界面如上图312所示,该程序为用户提供说明,包括各种符号说明和游戏方法说明。 图313菜单选择2时的界面 班级:信息093 姓名:陈新龙 学号:090810313如上图313所示,该程序为用户提供说明,包括各种符号说明和游戏方法说明。 图32菜单选择3时的界面如上图32所示,该功能实现游戏的结束。山东交通学院课程设计报告4.2 游戏中的界面图33在第一关中的游戏界面如上图所示,通过按键的操作,该功能实现人的移动。 图34 在第一关中的游戏界面班级:信息093 姓名:陈新龙 学号:090810313如上图34所示,通过按键的操作,该功能实现人推箱子的移动。 图35 在第一关游戏结束的界面如上图35所示,通过按键的操作,该功能实现人把箱子推到了目的地,并重新清屏输出界面。 结束后还会有提示,问是否玩下一关。 山东交通学院课程设计报告 图36 在第二关游戏中的界面如上图36所示,通过按键的操作,该功能实现人把箱子推到了目的地,并重新清屏输出界面。 图37 在游戏中按q键的界面班级:信息093 姓名:陈新龙 学号:090810313如上图37所示,通过按键的操作,无论是在刚开始游戏,还是在游戏了一段时间后,只要按q键,都会返回菜单界面。由于第二关有点难,暂时没有通关,故我改了一下地图,来看一下通关的效果,只有在玩完第一关时,再玩第二关胜利时才会出现此画面。如图38所示: 图38 在游戏通关时的界面如果刚开始接选择了第二关,并通关了会出现:恭喜您直接通关了字样,如图39: 山东交通学院课程设计报告图39 在游戏通关时的界面5 课程设计总结为了提高我们的实践能力,让我们学以致用,能灵活运用所学的知识进行再创造,学校特安排我们进行为期一周的Visual C+课程设计实习,并安排了指导老师帮助辅导,让我们在规范化、严谨化、实用化上面有了很大进展。在此次推箱子游戏程序开发过程中,有很多东西值得我们思考并总结。开发过程大体可分为以下几个步骤:(1)思考总体设计方案:总体结构和模块外部设计,功能分配。思考要实现整个程序大体需要的几个模块和其中用到的Visual C+语言基本操作符、语句等。(2)画出总体设计方案流程图:用流程图的形式展现你的基本编程思想。(3)流程图具体化:即将流程图中的几大模块的具体实现思考清楚,可以用流程图的形式展现并想好实现的关键代码。(4)编辑程序代码:这是一个至关重要复杂而且需要反复修改的环节,在此环节中你将发现总体设计和模块思想会存在很多问题,需不断改进如何实现各函数功能,达到预期效果也将是一项繁复的工作。(5)代码的调试:在Visual C+6.0环境下输入代码并进行调试和正确运行。在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进完善程序。(6)最后修饰:程序可以正确运行之后,再不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化增强程序的新意与可行性。通过这次课程设计,使我们更加熟悉的掌握了Visual C+语言的运用。帮助我们熟悉了更多Visual C+语言的功能,提高了我们的动手能力,学到了许多解决实际问题的宝贵经验同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。致谢最后,在这里郑重的感谢张老师的帮助,让我得到了许多意想不到的收获。也感谢学校提供给我们这次宝贵的实践机会,让我们可以动手动脑,大大提高了个人的能力和素质。班级:信息093 姓名:陈新龙 学号:090810313参考文献1 马安鹏.Visual C+程序设计导学。北京:清华大学出版社,20022 电子书籍. Visual C+技术内幕(第四版).网址:3 Beck Zaratian.Microsoft Visual Visual C+ 6.0程序员指南.希望图书创作室译.北京:北京希望电脑公司出品,19984Richard C.Leinecker,Tom Archer. Visual C+ 6 宝典.张艳,张谦译.北京:电子工业出版社,19995 李强,贾云霞. Visual C+项目开发实践.北京:中国铁道出版社,20046 郑莉,董渊,张瑞丰.C+语言程序设计.2003.7 H.M.Deitel,P.J.Deitel. Small C+ How to Program.2006.8谭浩强,C程序设计(第三版)。北京:清华大学出版社,2005(2007重印)山东交通学院课程设计报告6 附录(程序源代码)#include /标准输入输出头文件#include /system函数的头文件#include /getch函数的头文件#include time.h /调用时间函数的头文件int i,j; char le; /控制关数的全局变量char input; /接收按键字符/int main(int argc, char* argv) /这是添加的计算时间的函数,不要也可以,没事试着玩, /注意:这是main(),下面不能再出现main()了 time_t Atime,Btime; time(&Atime); /主函数/void main() (无用了) void draw_map(int map1012); /声明画图函数(游戏地图) void move(int map1012); /声明移动函数/*下面定义一个二维数组(来组成地图),其中的元素是不同图像的ID号,在后面的函数中将讲解不同数字分别代表的图像元素:0代表空地,1代表墙壁,2代表非游戏内容的空白框,3代表目的地,4代表箱子,6代表人*/system(color E5); /控制界面颜色,第一个字符是背景,第二个字符是字体int map21012 = 2,2,2,2,2,1,1,1,1,1,2,2,班级:信息093 姓名:陈新龙 学号:090810313 1,1,1,1,2,1,0,0,0,1,1,2, 1,0,0,1,1,1,0,1,0,0,1,2, 1,0,4,3,3,3,3,3,1,0,1,1, 1,0,0,1,1,3,3,3,4,0,0,1, 1,0,0,0,0,4,1,1,4,1,0,1, 1,0,4,1,4,0,0,0,4,0,0,1, 1,1,0,6,0,1,1,1,4,1,0,1, 2,1,1,1,1,1,2,1,0,0,0,1, 2,2,2,2,2,2,2,1,1,1,1,1; int map11012=1,1,1,1,1,1,1,1,1,1,2,2,1,0,0,0,0,0,0,0,0,1,2,2,1,0,0,4,0,0,0,0,1,1,2,2,1,1,1,1,1,1,0,0,1,1,2,2,1,0,0,0,0,0,0,0,0,1,2,2,1,1,0,0,0,0,0,0,0,1,2,2,1,0,6,1,1,1,1,1,1,1,2,2,1,0,0,0,0,0,0,3,0,1,1,1,1,1,1,1,0,0,0,0,0,1,2,1,2,2,2,2,1,1,1,1,1,2,2,2; int map1012;loop: /设置菜单标签system(cls);printf(nnnnnnnnnttt 欢迎玩*【推箱子游戏】*nttt 请选则关数【总山东交通学院课程设计报告共两关】:ntttt按3不进入游戏);printf(nttt 要回到主菜单时按q键);le=getch(); /用getch()函数无需回车确认地获取用户输入,用于选关。if(le=1) /选择生成地图1 for(i=0;i10;i+)for(j=0;j12;j+)mapij=map1ij; if(le=2) /选择生成地图2for(i=0;i10;i+)for(j=0;j12;j+)mapij=map2ij;if(le=3) /不进入游戏界面printf(nnnnttt 无此关卡,游戏结束n);else move(map); /调用移动函数if(input=q) /判断按键goto loop; /回主菜单选项printf(ntttO(_)O哈哈恭喜你,过关了!n); /过关提示if(le=2) /直接选第二关时的结果 printf(nttt你好聪明哦nttt(*_*) 嘻嘻恭喜你,直接通关了!n);/通关提示if(le=1) /在第一关的情况下在玩第二关,如刚开始就玩第二关,则不执行此语句班级:信息093 姓名:陈新龙 学号:090810313printf(n是否继续玩下一关(y/n)?:);if(getch()=y)for(i=0;i10;i+)for(j=0;j12;j+)mapij=map2ij;le=2; /用于判断记分结果属于哪一关 ,以便结束system(color 47); /控制界面颜色move(map); /调用移动函数if(input=q) /判断按键 goto loop; /回主菜单选项printf(nttt你好聪明哦nnttt(*_*) 嘻嘻恭喜你,通关了!n); /过关提示/ time(&Btime); printf( The program run %d sn, Btime - Atime ); /计算时间 return 0; /地图函数/山东交通学院课程设计报告void draw_map(int map1012) /定义地图函数for(i=0;i10;i+) printf(ttt); /将画面定格在中间位置for(j=0;j12;j+)switch(mapij)case 0:printf(); /数字0代表道路break;case 1:printf(); /数字1代表墙壁break;case 2:printf(); /数字2是游戏边框的空白部分break;case 3:printf(); /数字3代表目的地break;case 4:printf(); /数字4代表箱子break;case 7:班级:信息093 姓名:陈新龙 学号:090810313printf(); /数字7代表箱子进入目的地break;case 6:printf(); /数字6代表人break;case 9:printf(); /数字9代表人进入目的地break; printf(n); /分10行输出/移动函数/void move(int map1012) /定义移动函数 /char input;int count=0; /定义记分变量while (1) /死循环,等待用户命令system(CLS); /调用清屏函数printf(*n);printf(符号说明:nn代表人,代表箱子,代表空地,n代表目的地,代表墙,代表填充图形使画面整洁n);printf(游戏说明:nnw为向上走na为向左走ns为向下走nd为向右走n);山东交通学院课程设计报告printf(*n);draw_map(map); /调用地图函数,显示地图printf(当前得分:%dn,count);/找人的初始位置for (i=0;i10;i+)for (j=0;j12;j+)if (mapij=6|mapij=9)break;if (mapij=6|mapij=9)break;printf(您的当前坐标(%d,%d),i,j); input=getch(); /用getch()函数无需回车确认地获取用户输入,用于控制行走方向。switch (input)case w:/如果人前面是空地。if(mapi-1j=0)mapi-1j=6+0; /人往前走一步,ID为人的ID(6)加上空地的ID(0)。if(mapij=9) /如果当前人站的位置为目的地,则ID为9(即人的ID(6)加上目的地ID(3)。班级:信息093 姓名:陈新龙 学号:090810313mapij=3; /将人往前走一步后原地的ID修改为空地ID(3)。else mapij=0; /否则原地ID修改为空地ID 。 /如果人前面是目的地。else if(mapi-1j=3)|(mapi-1j=9)mapi-1j=6+3; /人往前走一步,ID为人ID+目的地ID=9。if(mapij=9) /如果原地也是目的地(ID为9)。mapij=3; /人走后把原地ID修改回目的地ID。else mapij=0; /否则原地ID修改为为空地ID/如果人前面是箱子。else if(mapi-1j=4)/如果人前面是箱子,而箱子前面是空地。if(mapi-2j=0) mapi-2j=4; /人推箱子往前走一步,把空地ID修改为箱子ID(4)/下面是对箱子原地进行判断if(mapi-1j=7) /如果箱子原地为目的地。mapi-1j=9; /人站在箱子的原地(目的地)时该地ID应该为人的ID+目的地ID=9。elsemapi-1j=6; /否则,人站在了原来的空地上,ID应该为6+0=6。山东交通学院课程设计报告/下面是对人原地进行判断if(mapij=9) /如果之前是目的地。 mapij=3; /人走了之后修改回目的地ID。elsemapij=0; /否则就是空地。/如果人的前面是箱子,而箱子前面是目的地。else if (mapi-2j=3) mapi-2j=7; /ID为7(目的地ID(3)+箱子ID(4)=7),表示已经把箱子推入了目的地。count+;/下面是对箱子原先位置的判断,同上。if(mapi-1j=7)mapi-1j=9;elsemapi-1j=6;/下面是对人原先位置进行判断,同上。if(mapij=9)mapij=3;elsemapij=0;/如果人前面是已经进入某目的地的箱子(ID=7)。else if(mapi-1j=7)班级:信息093 姓名:陈新龙 学号:090810313/如果人前面是已经进入某目的地的箱子,而箱子前面是空地。if(mapi-2j=0)count-;mapi-2j=4; /把箱子重新推到空地上,ID=箱子ID+空地ID=4。mapi-1j=9; /人自然而然的就站在了原先的目的地上了。/下面是对人原先地进行判断,方法同上。if(mapij=9) mapij=3;elsemapij=0;/如果人前面是已经进入某目的地的箱子,而箱子前面是另一目的地。if(mapi-2j=3)mapi-2j=7; /把箱子推入了另一目的地,自然,ID也应是7。mapi-1j=9; /人站在了目的地上。/下面是对人原先站立地进行判断,方法同上。if(mapij=9) mapij=3;elsemapij=0;break; /跳出w按键控制山东交通学院课程设计报告case s:/如果人前面是空地。if(mapi+1j=0)mapi+1j=6+0; /人往前走一步,ID为人的ID(6)加上空地的ID(0)。if(mapij=9) /如果当前人站的位置为目的地,则ID为9(即人的ID(6)加上目的地ID(3)。mapij=3; /将人往前走一步后原地的ID修改为空地ID(3)。elsemapij=0; /否则原地ID修改为空地ID 。 /如果人前面是目的地。else if(mapi+1j=3)mapi+1j=6+3; /人往前走一步,ID为人ID+目的地ID=9。if(mapij=9) /如果原地也是目的地(ID为9)。mapij=3; /人走后把原地ID修改回目的地ID。elsemapij=0; /否则原地ID修改为为空地ID/如果人前面是箱子。else if(mapi+1j=4)/如果人前面是箱子,而箱子前面是空地。if (mapi+2j=0) 班级:信息093 姓名:陈新龙 学号:090810313mapi+2j=4; /人推箱子往前走一步,把空地ID修改为箱子ID(4)/下面是对箱子原地进行判断if(mapi+1j=7) /如果箱子原地为目的地。mapi+1j=9; /人站在箱子的原地(目的地)时该地ID应该为人的ID+目的地ID=9。elsemapi+1j=6; /否则,人站在了原来的空地上,ID应该为6+0=6。/下面是对人原地进行判断if(mapij=9) /如果之前是目的地。 mapij=3; /人走了之后修改回目的地ID。elsemapij=0; /否则就是空地。/如果人的前面是箱子,而箱子前面是目的地。else if (mapi+2j=3) mapi+2j=7; /ID为7(目的地ID(3)+箱子ID(4)=7),表示已经把箱子推入了目的地。count+;/下面是对箱子原先位置的判断,同上。if(mapi+1j=7)mapi+1j=9;elsemapi+1j=6;/下面是对人原先位置进行判断,同上。if(mapij=9)山东交通学院课程设计报告mapij=3;elsemapij=0;/如果人前面是已经进入某目的地的箱子(ID=7)。else if(mapi+1j=7)/如果人前面是已经进入某目的地的箱子,而箱子前面是空地。if(mapi+2j=0)count-;mapi+2j=4; /把箱子重新推到空地上,ID=箱子ID+空地ID=4。mapi+1j=9; /人自然而然的就站在了原先的目的地上了。/下面是对人原先地进行判断,方法同上。if(mapij=9) mapi

温馨提示

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

评论

0/150

提交评论