推箱子程序制作说明文档

推箱子程序制作说明文档
推箱子程序制作说明文档

推箱子Swing版

西安尚学堂网址:https://www.360docs.net/doc/8317475831.html,

项目咨询热线:82300161,82300162

0 基本知识点

0.1Swing中的基本控件

本项目中会分别使用JFrame、JPanel、JLabel、JOptionPane四种控件,含义如下:

JFrame:代表窗体对象,Windows操作系统中的一个窗体都可以看做一个JFrame对象。JFrame常见的操作有设置标题(setTitle)、设置窗口大小(setBounds)、设置是否显示(setVisible)等。

JPanel:即面板,面板中可以包含各种Swing控件。JPanel常见的操作有设置背景色(setBackground)、添加控件(add)、设置布局(setLayout)等。

JLabel:即标签,可以用来显示文字或图片。JLabel常见的操作有设置图片(setIcon)、设置位置(setBounds)等。

JOptionPane:通常使用JOptionPane的showMessageDialog方法弹出对话框。

0.2Swing中坐标的概念

Swing中以左上角为原点坐标,通过x、y坐标及宽度、高度,可以确定物体的位置和大小(bound),Swing中正是使用控件的setBounds(x, y, width, height)方法来确定控件位置的,如下图所示:

0.3 判断物体是否超出边界

通过判断物体的x、y坐标是否小于0就可以知道物体是否出了左边界和上边界,但判断物体是否超过

右边界和下边界则需要加上物体自身的宽度或高度,如下图所示:

1 准备步骤

1.1 复制资源文件

在资源管理器中输入服务器的共享文件夹地址:“\\192.168.1.14\study”,将文件夹“图片资源”复制到本地。

1.2 创建eclipse工程

在桌面找到eclipse 3.2图标,双击运行。eclipse启动后在文件菜单中选择“新建”——“项目”,如下图所示:

在弹出的窗体中选择“Java项目”,然后点击“下一步”按钮,如下图所示:

输入项目的名称“推箱子”,然后点击“完成”按钮,如下图所示:

1.3 拷贝图片

在资源管理器中复制推箱子需要的7张图片,在“推箱子”工程上点击右键,选择“粘贴”,复制后的效果如下图所示:

1.4 创建Java类

在“推箱子”工程上点击右键,选择“新建”——“类”,如下图所示:

在弹出的窗口中输入类的名称“GameFrame”,并选中“public static void main(String[] args)”,如下图所示:

2 编码实现工人与围墙

2.1 创建窗体

输入如下粗体代码创建窗体:

要点:可以使用快捷键“Ctrl + 1”快速引包。

在代码编辑窗体点右键,选择“运行方式”——“Java应用程序”运行程序,如下图所示:

2.2 完善窗体

输入如下粗体代码完善窗体:

2.3 加入工人

输入如下粗体代码加入工人:

2.4 监听键盘事件

输入如下粗体代码监听键盘事件:

要点:可以使用快捷键“Alt + /”快速生成代码。

2.5 使工人可以移动

在keyPressed方法中输入如下代码使工人可以移动:

要点:需要在类中定义常量SPEED,如public static final int SPEED = 12;

2.6 加入围墙

在类中加入围墙位置数组与墙壁控件数组:

在构造函数中加入循环放入墙壁控件:

2.7 判断工人是否撞到墙壁

在步骤2.5的键盘事件处理代码后继续输入如下代码判断工人是否撞到墙壁:

3 编码实现工人推箱子

3.1 加入箱子与胜利标志

在类中加入箱子控件与胜利标志控件:

在构造函数中加入两个控件:

3.2 使工人可以推动箱子

在步骤2.7的代码后继续输入如下代码使工人可以推动箱子:

3.3判断箱子是否撞到墙壁

在步骤3.2的if语句结束前继续输入如下代码判断箱子是否撞到墙壁:

3.4 判断是否胜利

在步骤3.3的语句后继续输入如下代码判断是否胜利:

4 完整代码

5 项目总结

推箱子游戏报告书

推箱子游戏设计报告书 一、项目背景 本实训要求对“推箱子游戏”进行分析、设计。 本实训对实训项目已经作了较为详细的分析及相关知识讲解,通过实训,促使专业技能得到综合训练,让我们了解软件开发基本技术和工作过程。同时,本实训中了解图形界面设计基本技术。 通过本系统的开发,要了解软件开发的整个过程,掌握软件开发的基本方法,提前培养从事软件行业应具备的基本素质和能力,为以后的学习作一个铺垫。 二、设计目的 本课程的课程设计实际是重在提升学生对程序的理解力和游戏界面的设计能力,进行的一次全面的综合训练,其目的在于加深动手能力以及对游戏设计思想的理解,掌握运用VB 开发应用程序的基本方法及基本技巧。 三、游戏介绍 本游戏设计了关卡设计器对有难度进行设计,同时用方向键↑↓←→控制小人的移动,空格重新开始,回车选择下一关,page up 上一关,page down 下一关,Esc 退回。小人移动来推箱子使箱子到达指定位置,如果箱子全部到达指定位置就表示过关 3.1界面设计 3.1.1界面设计原则: 1用户帮助 2向导 3快捷键 4鼠标与键盘对应 5布局合理化 6显示信息一致性 7界面一致性 8美观与协调性 9合理性 10规范性 11易用性 12一般交互 13数据输入 本游戏是一个简单游戏所以只涉及一些简单的界面设计原则.

3.2用户界面 又称人机界面,实现用户与计算机之间的通信,以控制计算机或进行用户与计算机之间的数据传送的系统部件。 GUI:即图形用户界面,一种可视化的用户界面,它使用图形界面代替正文界面。 本系统坚持图形用户界面(GUI)设计原则,界面直观、对用户透明。用户接触软件后对界面上对应的功能一目了然、不需要多少培训就可以方便地使用本应用系统。

基于Android推箱子游戏的设计与实现毕业论文

摘要 本系统主要是实现基于Android的推箱子游戏,推箱子是一款来自日本的古老游戏,其设计目的是训练人的逻辑思维能力。游戏场景一般是设定在空间狭小的仓库中,要求把箱子摆放到指定位置。这就要求玩家巧妙的运用有限的空间和通道,合理的安排箱子的位置和移动次序才可能完成任务。随着计算机游戏的发展,很多编程爱好者基于该游戏的思想开发出了各种版本、各种类型的推箱子。这其中也包括很多手机版本的实现,伴随着Android SDK技术的不断发展,一些基于Android应用也不断推陈出新,很快推箱子游戏便进入了千家万户。此Android推箱子游戏是基于Android SDK2.2基础上设计的,主要分为游戏菜单界面、玩家定制功能、游戏数据存储、游戏背景音乐设置、游戏帮助等功能模块的设计与实现,其中游戏菜单界面模块主要是供用户功能选择而用的;玩家定制则主要是通过提供游戏难度选择,使玩家根据自己的情况选择不同的关卡;游戏用户数据存储主要是采用轻量级数据库存储技术存储游戏用户的成绩;游戏背景音乐设置主要是实现用户可以选择自己喜欢的音乐的功能;其次还包括音量的大小开关;用户游戏指南等功能模块。 本系统采用MVC开发模式,使用SQLite数据库存储技术,基于Android SDK2.2开发平台,使用Eclipse+Android SDK2.2+DDMS+DroidDraw作为系统开发、调试的主要工具关键词:Android推箱子游戏 MVC SQLite Android SDK2.2

The Design and Implementation of the PushBox System Based on Android Abstract This system mainly is to realize the pushed box game based on Android ,Pushed box is a section from Japan's oldest game and designed to train people logical thinking ability. Game scene generally are set in the narrow space warehouse, and demanded the box is put to the appointed place. This requires player clever use limited space and channel, reasonable arrangement of the box location and movement order just may complete the task. Along with the computer game development, many lovers of programming based on this game ideas developed out various versions, various types of pushed box. They include a lot of mobile phones version of the realization, accompanied by Android SDK technology unceasing development, some based on Android applications are constantly, quickly pushed box game entered innumberable families. This Android pushed box game is based on SDK2.2 Android based on design, mainly divides into the game menu interface, customization function, game data storage, game background music Settings, games help etc function module design and implementation of the game menu interface module, which is mainly for the user function selection and use, Customization are mainly by providing game difficulty choice, make the player on its own choice of different levels, The game customer data storage is mainly to adopt a lightweight database storage technology memory game user's accomplishments, Game background music Settings is mainly realized the user can choose your favorite music function; Secondly also includes volume size switches, User game guides function modules. The system USES the MVC development pattern, use SQLite database storage technology, based on SDK2.2 development platform, use Android Eclipse SDK2.2 DDMS + + + Android

生化危机4里昂主线战略5-2

生化危机4里昂主线战略5-2 带艾什莉脱出,换散弹枪.出门把弓驽手和巨汉打掉(巨汉还是要打头的),之后清杂兵.再 向前,继续先杀掉弓驽手之后清杂兵.当走到靠近门的地方时会有个敌人过来把门关上,杀了他打开开关,又有几个敌人冲进来,依然是先杀弓驽手.清掉其它杂兵后走到垃圾场发生剧情. 剧情之后换狙击杀掉再生者(旁边的油筒可以利用),之后二人和力推箱子搭桥.过来后遇到第二个再生者杀掉后把箱子推开进门.遇到巨汉和几个杂兵.之后准备好闪光打或燃烧弹,从高台跳下后扔出.之后向操作机房跑去.调查开关让艾什莉操作,里昂在一旁保护.在门被碴开后开门离去.之后会又遇到两个再生者.按动开关后,门只开了一半就无法动弹了.需要艾什莉专过去把门完全 打开.之后的大门让艾什莉在一旁等待,里昂去另一边,中间的红灯亮起后按确定开门进入. 接下来艾什莉将负责开车,玩家负责在后面做保护工作(不要站得太靠前,因为有敌人会从车顶上跳下来).敌人会跳上车来.只要在他们跳上车前射到敌人.他们就不会跳到车上来了.即使上 来了也不怕,相信此时大家的手枪已经足以应付这种场面了吧,不行就用散弹,寄生兽多了老规矩闪光雷招呼.途中会有卡车向我们驶来,用手枪打爆它即可.之后它还会向我们开来一次,再次 打爆.之后我们会停在一平台处,换散弹枪要快速上梯子,消灭周围的敌人打开开关,并且快速 返回,因为有人会跳到车上袭击艾什莉.平台上升后我们的车子继续前进,继续消灭跳到车子上的敌人.向前行驶一会后会有卡车从前方开来,快速用枪将其打爆.稍后到达目的地发生剧情.在经过 商人房间后发生剧情,本节结束. 百度攻略&当乐网提供,更多精彩攻略访问https://www.360docs.net/doc/8317475831.html,1

推箱子程序设计报告

程序设计报告 推 箱 子 通信学院 电子信息1204工程班 1207050420 郝国成 一.设计思路 推箱子游戏是一款很有趣味的游戏,其开发过程有一定的技

巧和方法,其中涉及到二维数组、键盘操作以及图形化函数等方面的知识。 设计推箱子这个游戏,目的是将箱子推到指定的空位,以完成游戏。 首先,要在窗口上,绘制地图,画出墙和草地。 然后,要保证人和箱子可以移动,这个就用到了case WM_KEYDOWN函数去控制了。 下来,就是要制定游戏规则,根据游戏规则,箱子可以在空地之间、目的地之间、空地和目的地之间来回移动,。 最后,把全部箱子移动到指定位置才算完成本次游戏,因此箱子每移动一次都必须判断全部箱子当前位置是否到达指定坐标。 而且,只要游戏没有结束,就没有时间的限制。 大体思路确定以后就是要去怎么做,怎么去实现自己的想法。 我是采用二维数组绘制地图的原理,把资源图片一张张绘制到窗口DC上,然后记录人物资源的坐标,通过方向键响应,改变人物坐标,达到控制人物移动的目的。箱子也同样是这个道理。 想好思路以后,就是动手写代码。这期间我又认识了好多新的Windows的函数,不断的修改,使我更能深刻理解到WIN 32 的作用,收获很大。 二.部分代码 // 推箱子.cpp : Defines the entry point for the application. #include "stdafx.h" #include "resource.h" //#include "mmsystem.h"//导入声音头文件

//#pragma comment(lib,"winmm.lib")//导入声音头文件库 #define MAX_LOADSTRING 100 #define width 48 #define heigth 48 typedefstruct { int x; int y; }point; char map1[10][10]= //地图二维数组 { " ####", " ### @#", " # b #", " ## # ###", " # # #*#", " # # b*#", " # b *#", " ########", " " }; char map2[10][10]= //地图二维数组 { "nnnn#####", "nnnn# @#", "###n#bb #", "#*#n# b #", "#*### ###", "#* ##n", "# # #n", "#### #", "nnn#####", " " }; staticintbStarted=0; int a = 0; intaimnum_qj=0; intaimnum=0; intboxoknum_qj=0; charmap_mid[10][10]; char map[10][10];

推箱子游戏攻略

第一关: 直接将箱子推向钱币处就完成任务,此关是给大家一个基础练习,知道先点击一下箱子,然后再点击一下钱币,工人会自动帮助将箱子推向所想推到的位置。 第二关: 先将最下面的箱子推向最里面的钱币,然后再点击最外的箱子,推向第二个钱币,最后将余下的箱子推进最后一枚钱币。 第三关: 将挡在中间的箱子向下推两步,将靠右边的箱子向上顶一步,将最下面的箱子向左推一步,将原先推下来的箱子向顶回原来的位置,这时将挡在左边的箱子推至钱币的右下角,然后将中间挡路的箱子推向右上角,再将靠中间墙的箱子推至左下角,最后将余上的箱子推至最后一枚钱币。 第四关: 将挡路的箱子向下推一步,将挡路的第二个箱子向右推一步,工人向下走一步,然后将右手的箱子向右推一步,将已经在钱币中的箱子向上推至顶,将第二排右手边的第一个箱子向右推一步入钱币中,再将头顶的箱子上顶入钱币,将左手的箱子向右推两步进钱币,最后将余下的箱子推入最后一枚钱币。 第五关: 将挡路的箱子向右推两步,将右下角的箱子向上顶两步,将中间的箱子推入最里的钱币,将第一个箱子推入中间的钱币,最后将余下的箱子推入最后的钱币。 第六关: 将中间右下角的箱子推至目前工人所站位置的头顶,然后将另三个箱子按顺时针的顺序推入相邻的钱币,最后将第一个推动的箱子再直顶入钱币中。 第七关: 从下往上,将第一个箱子向右推一步,将第二个箱子向上顶一步,将最上的箱子推入最顶的钱币,然后将并排的三个箱子右手边的第一个推入第二枚钱币,将并排的两个箱子的左手那

个箱子向上顶一步,将右手的箱子推入钱币的最下一枚,将上墙的箱子向右直推入第三枚钱币,最后余下的箱子推入最后的钱币中。 第八关: 直接将中间的箱子顶入品字形的箱子中形成连体,将并排的三个箱子中的右手箱子直接顶至最顶的钱币,将最品字形最顶的箱子向左推一步,将并排的两个箱子的右手那个直顶入最高的钱币中,将最下的箱子直顶入钱币,将竖排两箱子的最下那个箱子推入中间的钱币,最后再完成最后一个箱子。 第九关: 先将右边中间的箱子推入左下角的钱币中,再将右手边的上下两箱分别推入左手边的中、上两钱币,将最上挡路的箱子向左推一步,将中间挡路的箱子向下推两步,将最下的箱子推入右下角的钱币中,最后将余下的两个箱子分别推入右手的钱币中就完成任务。 第十关: 先将最右边的箱子推至最底,将纵列三个箱子中的中间箱子向右推两步入钱币,将三列中的中间箱子向上顶一步,然后再将其向下推至最底,将最上的箱子向右推两步,将最后箱子推入钱币完成任务。 第十一关: 先将脚下的箱子向左挪一步,再将第二排的箱子向下推至与第三排箱子并排,然后将最上的箱子推至第一枚钱币,再将并排的箱子的右手箱子直接顶回到第二枚钱币,最后按从下往上的顺序将最后的两箱推入相应的钱币即完成任务。 第十二关: 先将最上的第一个箱子向上顶一步,再向下推两步入钱币,将中间的箱子向上顶两步,将最下的箱子向左推一步入钱币,最后推完余下的箱子完成任务。 第十三关: 这关开始有些难度了,别看箱子少,但确实得花一段时间思考一下呵。先将左数过来的第二个箱子向下推两步,再将左手第一个箱子向左推两步入钱币,将第右手由上往下数的第一个箱子向左推三步入钱币,再将目前并排未入钱币的右数第一个箱子向上顶一步,将第二个箱子向右推一步,好,现在将排成列的右手的箱子由上往下的第一个推至钱币的最上面一枚,

《古墓丽影3失落的神器》全攻略

《古墓丽影3失落的神器》全攻略 在开始时,我建议大家在设定画面把GAMMA调至5,否则有的游戏场景画面比较暗。(好象和LARA约会正合适:))如果是飞龙级的“高手”(菜鸟的星际版称呼,呵呵),还是建议大家先 到LARA的家里去练练手,否则在游戏里会死的很惨的。 第一关 开始,是一架直升机降落的场面,那个驾驶员好面呀,半天才落下来。然后是LARA的瞬间移动,(不会是又拜孙悟空为师了吧?)。现在我们正式开始游戏,LARA出现在动物园的门口,旁边还有警告牌,(记住要买票呦:))。首先,LARA翻过这到高墙,紧走几步来到水边,看到对面有一个小药包(切记,是东西就要捡呀。)爬上箱子,用猴子荡荡到对面,捡起药包。掉到水里,顺着水道游到一个码头前,(码头底下有鱼叉,记得捡呀。)上岸,走几步到了一个小支,向左能得到一些武器,向前走爬上石头向对面跳也行。(我选择了向左走,因为子弹很重要呀!)。向左走几步,来到了斜坡前面,捡起路中间的霰弹枪的子弹,(连子弹都敢乱扔,也难怪敌人的AI那么的低呀:))掏出小双枪打死敌人,哇~~~~,他...他...竟然敢放狗!(哦,我看错了,原来是一只红眼耷拉着尾巴的狼。现在我可算知道警告牌的做用了。不愧是动物园,想的真是周到呀。:))。掏出双枪将其击毙,(唉,LARA你怎么可以乱杀野生动物嘛。)走到了敌人身边,捡起照明弹,前面竟然有一个大药包,LARA小MM的口水都流出来了,捡!(LARA怎么跟我一样是个物品收集狂,我是玩三国志养成的习惯,难道LARA也玩吗?)。转过身来,向前走,爬上一个石阶向右走,走到一个长石阶上向前走到头,向左侧身30度,然后用胖式跳法跳到对面。(这个胖式跳法是本人在1代时研究出来的,不过嘛,现在已经烂了街了,这个跳法就是,首先用SHIFT键慢走到起 跳点,然后点一下方向键的下键,LARA就会向后倒跳一小步,这一小步正好是LARA长跳的助跑距离。哈哈,高手就是高手嘛,这个方法EIDOS在4代中才公布呀!不承认自己是高手就是不 行呀。。。呵呵,唉呦,我怎么又从椅子上掉下来了?奇怪?今天椅子是怎么了,还是换一把吧,顺便找瓶可乐补补血。)跳到对面后掏出双枪干掉敌人,从他身上捡起霰弹枪子弹,咦?平台上又有一个霰弹枪子弹,呵呵。要是捡破烂的话,我可就发啦。捡起这个子弹,画面突然给了一个 特写。怎么回事?呵呵,大家今天可是撞上了,竟然可以看到尼斯湖水怪!(如果看不到,可以和我联系,其实很简单,就是捡完子弹后,用慢走走到头,然后,向左慢慢转身,自己找一个角度就能看见了。)观赏完世界珍禽后,我们向冒烟处狂奔。(呵呵,吓一跳吧。:))跑进冒烟处,得到霰弹枪子弹,爬上石阶,向左转,远处有一个敌人,向前走,然后用江式跳法跳过去,将敌人击毙,跳到水里捡起鱼叉,上岸,走到头. 我们看到了一个开关(是一个时间性的控制开关)。拉下时间进入与其相邻的闽敌人,向右进入一个小房间,面向石狗的方向,如果大家自己已经找到了撬棒的话,可以一直向前冲,此时会有一个时间之门打开,冲进去便是一个隐藏地点。为了加快速度我将只做必要的说明。干掉另一个敌人进入石碑大厅,以石碑为正方向,向左走干掉敌人,LARA来到石阶的边缘,底下是 沼泽。LARA走到中间偏右的地方停下,向左转30度,此时,我们将助跑跳跳到对面倾斜的石 面上,再刚刚接触到石面的时候,要立即按下ALT键,LARA将反身翻到后面石台上,转身,跳向另一个石台上。此时,会有一只乌鸦出现,将其击毙(LARA你怎么又乱杀野生动物嘛。)。沿着对角线跳到另一个石台,继续向下达到下面的石台,向石碑的左侧跳去,向右看会看到有一个

《传说之下》全关卡、解谜图文攻略

《传说之下》全关卡、解谜图?攻略 游戏介绍 如果你喜欢?款怪诞、可爱?又不同寻常的R P G游戏的话,那么《传说之下(U n d e r t a l e)》不容错过。《传说之下(U n d e r t a l e)》将于9?15?登陆s t e a m。 游戏中,玩家扮演?名落?地下怪物世界的少年,需要找到回家的路,否则便会永远困在此处。虽然玩家可以和怪兽搏?,但是完全可以避免所有战?。这取决于玩家是否采取和平主义的游戏态度。 如果选择战?的话,将会发现该作品的战?系统是?常特别的,不是回合制或者其他常见类型,?更像是砍砍砍。躲闪系统是?常重要的,因为有些敌?攻击会直击玩家??的?脏,当你落?箱?陷阱的时候,必须计算好攻击和躲闪时间,否则就会瞬间被秒杀。 如果不打的话,就有?种?常奇葩的破关?式:和所有怪物抱抱。连最?和最恐怖的b o s s级别敌?也是如此,甚?在后期和其中?两个约个会也不是什么奇怪的事情。 游戏界?操作 F4键:全屏或窗?模;

回车键/Z键:确认; X键:取消或返回上?级; 按住E S C键:退出游戏; %{p a g e-b r e a k|游戏介绍&界?操作|p a g e-b r e a k}% 游戏上?指南 界?/操作介绍 暂停菜单 按C键或C t r l键可以打开游戏菜单。 属性:显?你的名字、等级、当前?量/总?量、持有的?钱总数。 物品:查看并使?你当前拥有的道具。 S TAT:查看游戏数据。 电话:打电话给N P C(联络感情或取得游戏资讯提?)。

游戏界? ?板:在墙上很多时候会出现?些?板,这些?板都写有?般是谜题的提?。 路牌:某些路牌竖?在道路之中,它们有些作?与?板相同,都是谜题的提?,或者是?些告?牌。 栏杆:多数拉杆为黄?,会出现在墙体上,拉动后会触发或解除?些机关陷阱。 窟窿:当你踩踏某些路段时,可能地?会出现??的圆圈(窟窿),那么你有可能会掉到别的房间当中去。 N P C:在路线会遇到?些N P C,?不是触发战?所出现的敌?,他们有可能是敌?或者是?些?害的N P C。 感叹号:当你在冒险过程中,会忽然跳出感叹号,这表?你遭遇到敌?。 可调查的道具:游戏中只要画?出现?较特别的物品,如书籍、意?利?、??洞、?件等,都是可以调查的,某些会告知你关于这个世界的 相关故事,某些事物则是没?的信息。

JAVA推箱子游戏

淮海工学院计算机工程学院 课程设计报告 设计名称:面向对象课程设计 选题名称:推箱子的设计与实现 系(院):计算机工程学院 设计时间:2014.3.10~2014.4.12 设计地点:软件实验室、教室

(3)功能模块 本程序包括四个功能模块:class mainFrame,class mainpanel,class Sound,class Readmap, 既主面板类,绘图的面板,播放背景音乐,用输入流读取地图文件。class mainpanel 主要是实现地图的初始化以及每一关地图的重载,class Sound主要是播放背景音乐。Adpressed的功能是响应工人和箱子的移动以及工人、箱子、墙之间的碰撞检测。 表1 成员变量表 成员变量变量类型名称 开始状态Boolean Start 窗口高度int fHeight 窗口宽度int fWidth 计时器Timer timer 延时int delay 开始时间Date starttime 步数int steps 地图容器MapPanel mapPanel 玩法介绍String instruction 开始状态Boolean Start 表2方法表 方法名功能备注 Puzzle() 创建游戏窗口和设置图标 backaction() 后台操作getmap() 返回地图的方法 StartGame() 开始游戏控制,更新开始菜单 endgame() 结束游戏控制弹出结束窗口 getmap()/ 返回地图的方法调用类spite() menuShowClik() 在游戏中显示完整图片调用类class ShowImage actionPerformed() 动作演示 menuExit() 退出游戏 flush() 清空缓存 游戏过程设计 游戏中过程中,最为主要地方在于对地图矩阵,以及主角状态信息(包括位置、行走状态等)的维护,主角每行走一步,就更新一次地图信息和主角状态信息。另外一个比较重要的地方是游戏状态的保存方面。在该游戏中,使用栈结构保存主角每次行走的

推箱子游戏详细设计报告

推箱子游戏详细设计报告 一、 引言 在前一阶段(概要设计)中,已解决了实现该游戏需求的程序模块设计问题。包括游戏模块间的关系设计,以及数据结构和模块结构的设计等。在以下的详细设计报告中将对在本阶段中对游戏所做的所有详细设计进行说明。 本阶段依据概要设计的要求,确定应该如何具体地实现所要求的游戏,从而在编码阶段可以把这个描述直接翻译成用具体的 程序语言书写的程序。具体包括各功能模块信息的录入和修改以及删除等。 1.2目的 目的是在训练你的逻辑思考能力。在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出 现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,才能顺利的完成任务。可以开发青少年学生的智力,又可以防止老年痴呆症。 1.3参考资料 《C 程序设计(第三版)》,谭浩强编,清华大学出版社 《Turbo C 2.0实用大全》,常玉龙等编写,北京航空航天大学出版社 《C 语言趣味程序百例精解》,陈朔鹰 陈英主编,北京理工大学出版社 《C 游戏编程从入门到精通》,浦滨著, 北京希望电子出版社 《C 函数实用手册》,张曜 郭立山 吴天著, 冶金工业出版社 二、总体设计 2.1需求概要 用户在进入游戏后,可以根据自己的想法自由移动箱子,游戏提供自由选关的功能模块,凭借这些模块,玩家可以实现对游戏快速通关! 2.2软件各模块结构 1、 初始化模块:该模块包括和游戏。屏幕初始化用于输出游戏的操作提示,游戏的每一关的初始化 是 初始化模块 每一关的初始化

2、 图画模块:该模块主要是被其它模块调用,用于画墙、在空地画箱子、在目的地画箱子、和画目的地。 画墙 画箱子 画图模块 画小人 画目的地 目的地画箱子 3、 移动箱子模块: 空地之间箱子的移动 移动箱子模块 目的地之间箱子的移动 目的地与空地之间的箱子移动

推箱子15关通关秘籍

第一关: 下上左左右上上下右右 第二关: 下下下下右下下左左上右下右上左上右右右下右上上下左左左左上上上上左左下右上右下下下下右下下左左上右下右上左上右右右下右上左左左左上上上左左下右上右下下下右下下左左上右下右上左上右右右 第三关: 下右下右下下左左右右上上左下左右上上左下下上上上上右下下下左下右上右下 第四关: 右下右右下下右下下左左上左左下左上右右右下左左右右右右上上左上上左左下下上上右右下下右下下左左上左左 第五关: 下右右右上左右右右上上左左下下左下左左上右右右上上左下下上上右右右下左上左下 第六关: 下左左下左左上右右上右右下下左左下下右右上下左左上上上左左下右 第七关: 左上上右右上上左下下左下下右右上下右右上左下左左左上上上右右右下左上左左下下下右右上上右上左下下下右上上左下下左左上上右上上下左下下下右右上上上 第八关: 上右左下下右上右右下左右下右右上左左上上上右右下左下左下下右右上左上左左左左上上右下左下右右左左下下右上左上右 第九关:

左上上左上上右右右下下右下左下左左上上左上上右下右上右下下右下下左上右下右右上左下左上下左左左上上下右右左左上左上上右右右下下上上左左左下右右上右下 第十关: 右上上左上右上上左左左下左下下右上上下下左下下右上上上右右上下下右上上下下下下左上上上下右左左下左上上下下右右右下右上上上左左左下下左上上 第十一关: 右下右下下下下左左上上左上下右下下右右上上左右上上左下左下左左上右右右上右右下左下左左上右下右上左左左左下右右上右右下下下左左上上右上上上左左下下左下右右左上上上右右下下右右上左下左左下下下右右上上下下左左上上右左左左上右上上右右下下左下左上右右上右右下左左左下下下右右上上下下左左上上右上上右右下左下左左上右下左左左上右下左左左上右下右右上上上左左下 第十二关: 左下下下下下左左上上上右左下下下右右上上上上下下下下左左上上右下上上右上右上上左下上左左下右下下上上上右右下下左右上左下下左左下下右右上上上下左下右上上右上上左下上左左下右下下上上上右右下左上左下下上右右下左 第十三关: 左左右下下左下右上上上左下左左上右右下右下下左上右上左上左左下下右右上右右上左左下下下右上左上上右上上左下下下下左左上上右左下下右右上上左左下右上右下上右右下左上上上左下 第十四关: 下右右上左下左左上上右下左下右上左上上上上右右下下左右上上左左下下下上右右右右上右右下左左左左上上左左下下下右下右右右右上下左左左左上左上上上右右下下右下上右上右右下左下下左左上上右上右下左左左上上左左下下右右右右左左左下下下左上上右上右右下下左右上上左左下左下下右上右右下左上右上上左上上左左下下下下右右右上上右上右右下左左左左左右上上左左下下上右右右下下右

推箱子--Java课程设计

《面向对象程序设计》 课程设计报告 题目:经典推箱子趣味游戏设计与实现 院(系):信息科学与工程学院 专业班级:计算机科学与技术1201班 学生姓名:程伟 学号:20121183011 指导教师:吴奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日 华中科技大学武昌分校制

面向对象程序设计课程设计任务书

目录 1需求与总体设计 (1) 1.1需求分析 (1) 1.2总体设计 (2) 2详细设计 (4) 2.1 mainFrame类 (4) 2.2 mainpanel类 (5) 2.3S o u n d类 (7) 2.4 Readmap类 (7) 3 编码实现 (9) 3.1游戏源码 (9) 4系统测试 (42) 总结 (45)

1需求与总体设计 1.1需求分析 1.1.1功能结构图 推箱子游戏的功能结构图如图1.1所示。 在系统中,编写4个Java类:mainFrame,mainpanel,Sound,Readmap;分别对应初始化游戏界面,游戏操作,背景音乐,绘制地图。 图1.1

1.1.2 UML类图 推箱子系统除了上述4个Java类外,还需要Java系统提供的一些重要的类。这些类之间的UML图如图1.2所示。 图1.2 1.2总体设计 1.2.1 mainFrame类 mainFrame类负责创建系统的主窗口。mainFrame类有多种重要类型的对象,这些对象构成了游戏界面的简明与美观,并且通过监听实现方法赋予了这些组件的相应功能。MainFrame类通过调用Readmap类来实现将地图绘制在游戏主界面,通过调用Sound 类来实现对背景音乐的管理,实现音乐开关以及选择上一曲下一曲的操作。 设计中包括了所有你所能直观见到的图形界面,窗体的大小,下拉菜单中的功能菜单,使得玩家能够很直观的见到所有游戏中的功能.界面中有菜单, 包括:"选项""设置音乐""帮助"。按钮包括:"重来""悔一步""第一关""上一关""下一关""最终关""选关""音乐"等。 1.2.2 mainpanel类 Mainpanel类中集成了小人与箱子的移动规则,并且还包含了对键盘操作移动的响应方法。在本游戏系统中,给人的视觉感受应该是能感受都动作的变化,逼真的人物动作会使系统更有效.通过控制人物,箱子,空地,障碍物在数组中的位置的改变来控制移动

2021年推箱子C课程设计报告

程序设计课程设计报告书 欧阳光明(2021.03.07) 学生:孟祥煜 指导老师:曾宇容 课程设计名称:推箱子小游戏 班级:软件11401 一、设计任务 介绍推箱子游戏的实现方法,并逐步介绍C语言图形编程的方法和技巧。在C语言编写软件WIN-TC上,涉及软中断、二维数组、键盘操作及图形化函数等方法,显示器中断寄存器的设置、二维数组的定义、键盘上键值的获取、图形方式下光标的显示和定位,以及部分图形函数的使用实现了一个完整的推箱子游戏界面,界面清晰可见。 二、设计目的 训练学生掌握C的数据结构和综合编程能力和游戏开发技巧等应用能力。 初步设想 推箱子是一款经典的益智小游戏,目的是在训练人的逻辑思考能力。在一个狭小的空间中,要求把木箱从起始位置处推放到指定位置。在空间中有地方限制,稍不小心就会出现箱子无法移动或者通道被堵住的情况,而且箱子只能推不能拉,所以需要玩家巧妙的利用有限的空间和通道,合理的移动次序和位置,才能完成任务。本

游戏一共分14关,由易到难,每一关都随着关数的增 加来增加难度,从而达到吸引游戏玩家的目的。 三功能 1、菜单功能,玩家通过看目录按对应的键可以进入对应的功能菜单,其中1进入游戏,2选择游戏关卡,3游戏帮助指南,4退出游戏。 2 游戏功能:玩家可以通过操纵键盘中的上下左右键进入游戏进行各种操作来完成游戏。 3 循环功能:当玩家正在游戏的时候如果某一步走错了,导致游戏无法完成,可以随时重新开始游戏来完成关卡,游戏过程中可以随时按Ctrl+V退出游戏。 4顺序功能:当玩家完成了某一关之后,随着进入下一关门可以按顺序进入下一关,继续开始更有挑战的关卡,如果该关是最后一关,则显示通关完成。 三、总体设计 1、功能模块设计 函数功能描述本程序包括5个模块,分别是初始化模块、画图模块、移动箱子模块、移动小人模块和功能控制模块。各个模块功能的功能描述如下: (1)初始化模块。该模块包括屏幕初始化和游戏第一关到第最后一关的初始化。屏幕初始化用于输出欢迎信息和操 作提示,游戏每一关的初始化是构建每一关的关卡。

推箱子游戏

陕西师范大学 C语言课程设计 推箱子 院(系)别计科院 班级信息管理与信息系统 指导教师何秀青 时间2015-6 参与者:王杰王启星贾臻孙楠

1.设计目的 本程序涉及软中断,二维数组,键盘操作,图形化函数等方面的知识。通过本程序的训练,能基本掌握显示器中断寄存器的设置,二维数组及结构体的应用,图形方式下光标的显示和定位,以及部分图形函数。 2.功能描述 本游戏共有五关,由易到难,每关都有初始化,按键处理,充值和退出功能。 (1)初始化包括屏幕初始化和每一关关卡的初始化,屏幕被初始化为宽80像素,高25像素。 (2)按键处理包括移动小人和推动箱子,通过移动上下左右键控制小人移动,从而推动箱子,以把箱子推到指定的目的地为通关。 (3)每一关都可以重置,按空格键可以重置当前关卡。 (4)按Esc键可以在任何时候退出游戏。 3.总体设计 (1)系统模块图 初始化模块:该模块包括屏幕初始化和游戏每关的初始化,屏幕初始化用于输出欢迎信息和操作提示,游戏每关的初始化是构建每一关的关卡。 画图模块:画图模块主要被其他模块调用,用于画墙,在空地画箱子,在目的地画箱子,画小人和画目的地。 移动箱子模块:该模块用于移动箱子,包括目的地之间,空地之间和目的地与空地之间的箱子移动。 移动小人模块:该模块用于控制小人移动,从而推动箱子到目的地。 功能控制模块:该模块是几个功能函数的集合,包括屏幕输出功能,指定位置状态判断功能和关卡重置功能。 (2)任务执行流程图推箱子游戏 初始化模块画 图 模 块 移 动 箱 子 模 块 移 动 小 人 模 块 功 能 控 制 模 块

否 是 否 有 否 是 是 否 (3)小人移动流程图 小人移动方向有四个,move()函数(处理小人移动的函数)对这四个方向移动的处理都一致,只是调用函数时的参数有所不同。首先判断小人的移动方向,然后根据小人所处的当前状态,下一步状态或者下下一步的状态进行适当的处理。 开始 第一任务开始 是否继续完成 有无成功希望 是否成功 是否第六关 进入下一任务 显示通关信息提示结束 按Esc 键退出 按空格键回到开始

C推箱子课程设计报告

C推箱子课程设计报告 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

武汉理工大学华夏学院 课程设计报告书 课程名称:软件综合 题目:基于VC++的“推箱子”游戏软件的开发与测试 系名:信息工程系 专业班级: 姓名: 指导教师: 2013 年元月 18日 课程设计任务书 学生姓名:专业班级:软件2101 指导教师:工作单位:信息系计算机教研室 设计题目:基于VC++的“推箱子”游戏软件的开发与测试 初始条件: 1.已完成c语言程序设计、软件工程、数据库概论或数据库技术等课程的学习 2. 系统环境:Intel 奔腾4以上处理器,1G以上内存,40G以上硬盘, Windows编程环境,Visual C++ 编程工具 要求完成的主要任务:(在规定的时间内完成下列任务) (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 主要任务: 系统完成用户登录及管理员增加、删除、修改、查询功能 1.按系统功能进行游戏背景区域(移动区域、围墙)的设计与绘制: 2.根据系统实现的功能,绘出功能图、系统流程图 3.模块调试,运行结果正确,并经教师检查及答辩;

设计报告撰写格式要求:(课程设计报告按统一通用格式书写)具体内容如下: ①设计任务与要求②总体方案与说明 ③程序主要模块的流程图④问题分析与解决方案的设计思想和改进设想 ⑤系统的调试记录、调试报告(即在调试中遇到的主要问题、解决方法及改进设 想) ⑥小结与体会 附录:①使用说明②参考资料 时间安排:2012年12月29日---2013年元18日(共三周) 指 系主任签字:年月日 目录

推箱子游戏

经典的推箱子游戏。 游戏中使用了图片。 【点击这里下载完整项目】 以下是项目的代码(需要图片才能编译执行): /////////////////////////////////////////////////////////// // 程序名称:推箱子 // 编译环境:Visual C++ 2010/6.0,EasyX_2011惊蛰版 // 程序编写:自然向日葵 1164359890@https://www.360docs.net/doc/8317475831.html, // 最后更新:2012-1-21 // //////////////////////////////////////////////////////////// //游戏中用0表示空地,1表示人物,2表示箱子,3表示目的地,6表示围墙 // //画素材的x1和y1都是反的,因为x表示行,但是画出来x表示列,y同 //////////////////////////////////////////////////////////// #include //EasyX_2011惊蛰版(绘图库) #include #include int x, y; //人物坐标 int loop; //控制是否重新开始 IMAGE img[8]; //定义IMAGE对象数组来保存图片 /*******************函数声明*******************/ void blank(int x1, int y1); //画空地 void man (int x1, int y1); //画皮卡丘 void box (int x1, int y1); //画箱子

Android推箱子游戏程序设计

一、课题来源 本课题来源于一款来自日本的古老游戏——推箱子,其设计目的是训练人的逻辑思维能力。游戏场景一般是设定在空间狭小的仓库中,要求把箱子摆放到指定位置。这就要求玩家巧妙的运用有限的空间和通道,合理的安排箱子的位置和移动次序才可能完成任务。 如今,伴随着Google Android操作系统的盛行,基于Android SDK的系统开发和基于Android应用的开发等已逐渐倍受大家关注,而手机游戏开发历来是移动开发中分量最重的部分,面对如此火爆的Android市场自然也不甘示弱,由于Android的应用层开发是基于Java的开发,所以必有其可以快速移植J2ME 开发的游戏的优势,但是移植的游戏必定也不能发挥Android操作系统独特的特性,所以目前基于Android游戏开发的市场还是不够成熟的,面对这种情况,在了解Android SDK基础上,我打算开发一款完全适应于Android操作系统的推箱子游戏。 二、本课题的基本内容 1、地图编辑器(可选) a)可通过地图编辑器生成地图 b)地图由小正方块拼接组成 c)地图中每一格可以是墙、通道、木箱、目标位置 d)游戏主角所在位置同时必须是通道或者目标位置 e)一张地图中主角数目有且仅有一个 f)一张地图中箱子数目必须与目标位置数目相等 g)允许对正在编辑的地图清除或者替换某一格中的内容 h)地图中一格不允许墙、通道、木箱、目标位置中两个及以上共存, 最后添加的类型为该格代表的类型 i)通过地图编辑器生成的地图可以被游戏程序调用 2、基本要求 a)每关卡箱子数目不定 b)主角和箱子只能呆在通道及目标位置上移动,不能穿墙 c)主角不能穿过箱子 d)箱子数量和目标位置数量相等(但每个箱子并不和唯一的目标位置 一一对应) e)主角可以移动和推动木箱(响应键盘方向键) f)主角只能往前推动箱子,不能向后或者向侧面拉箱子 g)主角不能同时推动两个箱子 h)箱子移动方向正前方紧挨墙壁,不可推动 i)允许撤销以及重做游戏步骤 j)将所有箱子推到设定位置则通过本关,自动进入下一关卡 k)记录每一关中玩家的移动步数 3、扩展功能(可选)

推箱子C语言课程设计

需要的话,加QQ:42701618 《C语言课程设计》报告 C Program Experiment Designing 一、C语言课程设计目的及要求 目的: 根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调 试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐 渐培养学生的编程能力、用计算机解决实际问题的能力。 要求: 1.熟悉Turbo C 的编程环境、主要菜单功能。 2.通过上机验证运算符、表达式、运算规则、函数使用。 3.熟练使用C语言的典型语句编写简单程序。 4.调试典型例题或习题。 5.提高上机编程能力 二、实验类型 设计类型 三、实验学时 40学时 四、实验设备 微型计算机、WINDOWS98以上版本的操作系统、Turbo C2.0 软件一套 五、C语言课程参考教材: 1. C语言程序设计清华大学出版社马靖善主编 2 谭浩强.C语言程序设计(第三版).北京:高等教育出版社,2002

题目:推箱子 1.基本功能介绍: 本程序为游戏推箱子,该程序的基本功能有: 推箱子游戏的求解难度比其他游戏高很多。有一些游戏有固定的解法,比如魔方。Windows经典小游戏扫雷可以总结出通用推理规则(请参见作者的“自动扫雷”中的说明)。一些游戏的搜索空间很小,可以用电脑蛮力求解,比如华容道,每一步只有两三种可能性。有一些游戏虽然搜索空间比较大,但是可以给电脑制定启发式搜索规则,让电脑比较“智能”地进行搜索,比如空当接龙,作者的空当接龙工具就是让电脑向着理顺牌的次序的方向前进。 推箱子游戏的搜索空间极大,又没有合适的一般方法。人可以总结出一些模糊的规则,但是这些规则非常难以用程序语言描述。推箱子问题已经被证明是一种“NP-难的问题”,“NP-难的问题”是计算机领域中至今没有找到有效算法的一类著名难题。 目前,根本不存在对所有推箱子问题都能有效求解的方法。网上现有的程序一般只能有效地解决10×10大小之内的题目。我的程序也不例外。 软件的特色 我的工具的特色是先进的死锁检测算法。死锁就是一旦把箱子推动到某些位置,一些箱子就再也无法推动或者无法推到目的点,比如四个箱子成2×2摆放。推箱子高手对何种情况引起死锁非常敏感,这样他们预先就知道决不能让某些局面形成,这也是高手高于常人的原因之一。我的工具能够检测出绝大部分这样的死锁,并且,由于对死锁的特征进行了高度提炼,能够检测出很多人也无法很快看穿的死锁。这样,工具的效率得到很大的提高。对于10×10大小以内的题目,一般都能很快解出。 每一行代表仓库的一行,不能有空行。 空格或‘='表示地板。每行最后连续的地板可以省略。 ‘#’表示墙。 ‘’表示人。 ‘$’表示箱子。 ‘.’表示目的点。 ‘*’表示在目的点上的箱子。 ‘+’或‘%’表示在目的点上的人。 “编辑”菜单下的“目标人位置”是本工具的特色之一。在求解一些大型题目

相关文档
最新文档