推箱子攻关秘籍
智慧少年_实验小组-推箱子-1
keyin() { int k; char tmp[2];
if(kbhit()) { k=getch(); if (k==27) exit(0); switch (k) { case 77: r=1; break; case 72: r=2; break; case 75: r=3; break; case 80: r=4; break;
main()主程序 draw()函数
draw() {
for(y=0;y<=10;y++) for(x=0;x<=10;x++) { if(map[y][x]==1) { gotoxy(x,y); putch(177); } if(map[y][x]==2) { gotoxy(x,y); putch('O'); } if(map[y][x]==3) { gotoxy(x,y); putch(254); } if(map[y][x]==5) { gotoxy(x,y); putch(02); } }
二、推箱子游戏—对号入座
draw() { int i,j,count=0;
for(i=1;i<=10;i++) for(j=1;j<=10;j++) { gotoxy(j,i); putch(32);}
for(i=1;i<=9;i++) for(j=1;j<=9;j++) { if(ps[z][i][j]==1) { gotoxy(j,i); putch(219);} if(ps[z][i][j]==2) { gotoxy(j,i); putch('O'); count++; bx[o]=j; by[o]=i; } if(ps[z][i][j]==3) { gotoxy(j,i); putch(254);} if(ps[z][i][j]==5) { gotoxy(j,i); putch(02); x=j;y=i; } }
推箱子小游戏
推箱子小游戏
推箱子是一款经典的益智小游戏,目标是将所有的箱子推到指定的位置上。
游
戏区域由方块组成,其中包含了墙壁、目标点、玩家和箱子。
游戏的规则很简单,玩家通过控制角色进行移动,将箱子推到目标点上。
玩家
只能推动箱子,而不能拉动箱子或者将箱子推到墙壁上。
玩家可以向上、向下、向左或向右移动,但是不能穿过墙壁。
玩家需要注意的是,箱子只能推动一格,也就是说,玩家需要站在箱子的旁边
才能推动它。
当箱子被推到目标点上时,目标点会变成一个已经完成的状态,
玩家需要将所有的箱子都推到目标点上才能完成游戏。
在游戏中,玩家需要考虑到箱子的位置和移动顺序。
如果箱子被推到一个角落里,可能会导致无法继续推动箱子,从而无法完成游戏。
因此,玩家需要合理
安排箱子的位置,以确保能够顺利推动箱子到目标点上。
此外,在游戏中还有一些技巧和术语可以帮助玩家更好地解决问题。
例如,玩
家可以利用墙壁来阻挡箱子的移动路径,从而更好地控制箱子的位置。
玩家还
可以利用一些特殊的移动序列来解决一些复杂的情况,例如“倒退”、“环绕”等。
推箱子是一款非常有趣和具有挑战性的游戏,玩家需要灵活运用自己的思维能
力和空间想象力来解决问题。
每一关都有不同的布局和难度,玩家需要不断尝
试和探索,才能找到最佳的解决方案。
通过不断的练习和思考,玩家可以提高
自己的推箱子技巧,挑战更高的关卡和更复杂的谜题。
希望你能尝试推箱子这款游戏,享受解决谜题的乐趣!。
推箱子小游戏
推箱子小游戏
推箱子是一款经典的益智小游戏,玩家需要通过移动箱子来完成各个关卡的目标。
游戏的目标是将所有的箱子推到指定的位置上,以完成关卡。
游戏规则如下:
1. 游戏地图由方格组成,每个方格可以是墙壁、地板、目标位置或者箱子。
2. 玩家可以控制一个角色在地图上移动,每次只能移动一个方格的距离。
3. 玩家可以向上、下、左、右四个方向移动,但不能穿过墙壁。
4. 玩家可以推动箱子,但只能推动靠近自己的箱子,而且只能推动一格距离。
5. 箱子只能被推动,不能被拉动或者移动到墙壁上。
6. 箱子必须被推到指定的目标位置上才算完成,所有的箱子都完成后,即可进
入下一关。
玩家需要运用一些技巧和策略来完成游戏:
1. 观察地图,找出箱子和目标位置的相对位置,制定推箱子的路径。
2. 注意箱子的位置,确保不会将箱子推到墙壁或者角落里,导致无法继续推动。
3. 利用墙壁和箱子的位置,合理利用推箱子的顺序,避免陷入死局。
4. 如果出现错误的移动,可以通过悔棋功能来回退到之前的状态,重新规划移
动路径。
推箱子游戏不仅考验玩家的观察力和空间思维能力,还需要灵活运用策略来解
决问题。
每个关卡都有不同的地图布局和目标位置,玩家可以尝试不同的方法
来完成关卡,增加游戏的乐趣和挑战性。
希望你能够享受推箱子游戏带来的乐趣!。
七天学会推箱子
目录前言 (1)日程安排: (2)第一章确定思路 (3)1.1 确定界面 (3)1.2 程序框架 (3)第二章地图的处理 (5)2.1 定义地图 (5)第三章局部内容绘制 (7)3.1 目标点 (7)3.2 箱子和人物 (7)第四章控制处理 (8)4.1 人物控制 (8)4.2 强化控制 (10)第五章记录与撤销 (11)5.1 记录 (11)5.2 撤销 (12)第六章过关处理 (13)6.1 判断是否过关 (13)6.2 过关后的处理 (13)第七章通关处理 (14)7.1 判断是否通关 (14)7.2 通关后的处理 (14)七天学会推箱子前言经典的推箱子是一个来自日本的古老游戏,目的是在训练人的逻辑思考能力。
在一个狭小的仓库中,要求把木箱从开始位置推放到指定的位置。
在仓库有障碍物,稍不小心就会出现箱子无法移动或者通道被堵住的情况,而且箱子只能推,不能拉,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,才能顺利的完成任务。
当然我个人也比较喜欢玩这个游戏,因此,我就借这个机个将这个推箱子游戏用C语言实现出来。
当然,我也借鉴了前人的一些技巧和经验。
由于本人水平有限,此游戏的制作显得有些粗糙,希望老师同学们能够谅解。
日程安排:注:带“*”号为重点。
第一章确定思路1.1 确定界面首先我们来看一下效果效果图在这里我们是用数组来实现的,一切的操作都是建立在一个三维数组里。
比如a1[z][i][j] 在a1这个数组的上标就是Z代表的是关数。
在教程里我们是把它当一关来做的。
当然你定义的时候可以定义为:int a1[1][10][10];1.2 程序框架为了不会闪屏,我们要用局部刷新。
那么地图是过一关后才会改变的,所以我们的地图一关只要绘制一次就好。
而箱子和目标点还有人物是会随时改变的所以我们可以把他设为人物每动一次我们就可以刷新一次。
(当然你也可以做得更好,可以做到有改动的地方才刷新。
)同时还要想到给人物记录在这个数组中的上标、下标。
推箱子答案
第二十三关:293486
破关要诀:启动切割按钮,然后用右边的方块启动最上面的O按钮(别去碰最右边那个)
再回来启动左边的O按钮,合成启动X按钮,再切割。
第二十四关:088198
破关要诀:别急着分割,照顺序启动右左中的X按钮再分割。
第16关:000241
右右右右* 白右下*白 右上*白右 左左左*右 左*左下* 白右上*白 左白左左右 左左左左* 右右右右右 右右右白下 右右右右右 右右右右
第17关:683596
下下下下下 左上右右右 右右上右右 右左左左下 左左左左上 上上上上上 右右右右下 右右右右上 左下右右上 左下下右上 左下上右下 左上上右下 左左上右下 左左左左上 左左左左下 下下下下下 右右右右上 右右右下下 上左上左左 左下左左左 上左上上上 右右右右右 下右右右
第10关:300590
右右*左下 下下右下下 下下下左左 左左上左左 左下上右右 右下右右右 上白下下右 右下右下下 下左下上右 上上上上左 左上左下左 左左左左
第11关:291709
右右右右上 左下下下右 右右右上上 左上上左左 左下右上右 右下右上左 左左下下左 左左上上右 上上左下右 上右下左
第二十八关:769721
破关要诀:要绕来绕去的,其实多试几次就好,不能启动O按钮
第二十九关:691859
破关要诀:依顺序启动按钮,右上O-左上O-右上X-右下O-左右X。
第三十关:280351
破关要诀:先启动右下X按钮,再启动上方X按钮,再回来启动左边X按钮。
第三十一关:138620
第33关:614955
推箱子总结完整(附有源代码)
推箱子总结完整(附有源代码)推箱子复习总结推箱子基本概括思路:/* 定义二维数组ghouse来记录屏幕上各点的状态,其中:0表示什么都没有,'b'表示箱子,'w'表示墙壁,'m'表示目的地,'i'表示箱子在目的地。
*/1.人物设置:即在特定的坐标将人画出。
(1)1个,在ghouse数组中特定的坐标点用printman函数画出小人:如/* 在特定的坐标上画人的函数*/void printman(int x,int y){gotoxy(y,x);_AL=02;_CX=01;_AH=0xa;geninterrupt(0x10);}printman(2+4,4+10);/* 在特定的坐标上画人*/2.箱子设置:在特定的坐标点画出箱子,并写下'b'箱子:3个,在ghouse数组中特定的三个坐标设置三个箱子并由printbox函数给箱子写下'b':如/* 在特定的坐标上画箱子并用数组记录状态的函数*/void printbox(int x,int y){putchxy(y-1,x-1,10,WHITE,BLACK); /*设置箱子,样式10,前景色白色,背景色黑色*/ ghouse[x][y]='b';}printbox(3+4,6+10); /*在特定的坐标点写下箱子*/printbox(3+4,7+10);3.墙壁设置:在ghouse数组中画出墙壁,并写下'w'在ghouse数组中画出墙壁,并用printwall函数写下'w':如(通过for循环实现)/* 在特定的坐标上画墙壁并用数组记录状态的函数*/void printwall(int x,int y){putchxy(y-1,x-1,219,MAGENTA,BLACK);/*x,y,219 样式参数,MAGENTA前景色,BLACK 背景色(x,y初始值为1,所以减1)*/ ghouse[x][y]='w';}for(x=1,y=5;y<=9;y++)/*初始化墙壁,根据printwall函数设置墙,重点:写上‘w’*/ printwall(x+4,y+10);for(y=5,x=2;x<=5;x++)printwall(x+4,y+10);for(y=9,x=2;x<=5;x++)printwall(x+4,y+10);for(y=1,x=3;x<=8;x++)printwall(x+4,y+10);for(x=3,y=3;x<=5;x++)printwall(x+4,y+10);for(x=5,y=8;x<=9;x++)printwall(x+4,y+10);for(x=7,y=4;x<=9;x++)printwall(x+4,y+10);for(x=9,y=5;y<=7;y++)printwall(x+4,y+10);for(x=8,y=2;y<=3;y++)printwall(x+4,y+10);printwall(5+4,4+10);printwall(3+4,2+10);4.目的地的设置:通过特定的坐标点画出目的地,并写下'm',并用链表与ghouse数组记录目的地的信息,用链表记录目的地在ghouse 数字组中位置(下标)目的地:3个,在ghouse函数中在特定的三个坐标点画出目的地,并用printwhither1函数写下'm'并记录记录'm':如//目的地的坐标是由链表记录的,6个值表示坐标,由三个节点的链表来记录/* 在特定的坐标上画目的地并用数组记录状态的函数*/winer *qw;putchxy(y-1,x-1,'*',YELLOW,BLACK);ghouse[x][y]='m';if(*win==NULL) /*刚输入时*win==null,if语句执行,将第一个目的地存入第一节点*/ {*win=*pw=qw=(winer* )malloc(sizeof(winer));(*pw)->x=x;(*pw)->y=y;(*pw)->p=NULL; /* -> 结构体成员符*/}else /*存入信息后执行else语句,将链表进行连接*/{qw=(winer* )malloc(sizeof(winer));qw->x=x;qw->y=y;(*pw)->p=qw;(*pw)=qw;qw->p=NULL;}5.关卡设置:初始化箱子、目的地、墙壁、小人:通过for循环与printman,printbox,printwhither1,printwall函数的调用进行初始化:如(其他三关同理)/* 第一关的图象初始化*/winer *inithouse1(){int x,y;winer *win=NULL,*pw;gotoxy(8,2);printf("Level No.1");/*在指定地点显示关卡*/for(x=1,y=5;y<=9;y++)/*初始化墙壁,根据printwall函数设置墙,重点:写上‘w’*/ printwall(x+4,y+10);for(y=5,x=2;x<=5;x++)printwall(x+4,y+10);for(y=9,x=2;x<=5;x++)printwall(x+4,y+10);for(y=1,x=3;x<=8;x++)printwall(x+4,y+10);for(x=3,y=3;x<=5;x++)printwall(x+4,y+10);for(x=5,y=8;x<=9;x++)printwall(x+4,y+10);for(x=7,y=4;x<=9;x++)printwall(x+4,y+10);for(x=9,y=5;y<=7;y++)printwall(x+4,y+10);for(x=8,y=2;y<=3;y++)printwall(x+4,y+10);printwall(5+4,4+10);printwall(5+4,7+10);printwall(3+4,2+10);printbox(3+4,6+10); /*在特定的坐标点画箱子,并写下'b'*/printbox(3+4,7+10);printbox(4+4,7+10);printwhither1(4+4,2+10,&win,&pw); /* 在特定的坐标上画目的地,写下'm'并用数组记录状态*/printwhither1(5+4,2+10,&win,&pw);printwhither1(6+4,2+10,&win,&pw);printman(2+4,8+10); /* 在特定的坐标上画人*/return win;}6.箱子的下一个位置的情况:/* 在特定的坐标上画箱子在目的地上并用数组记录状态的函数*/1)下一个位置是目的地,空地:当下一个位置为目的地时写下'i',当下一个位置为空地时写下'b',并擦去原位置的状态(将原位置ghouse数组==0)如/* 移动在空地上的箱子到空地上*/movebox(int x,int y,char a){switch(a){case 'u':ghouse[x-1][y]=0;printf(" ");printbox(x-2,y);printman(x-1,y);ghouse[x-2][y]='b';break;case 'd':ghouse[x+1][y]=0;printf(" ");printbox(x+2,y);printman(x+1,y);ghouse[x+2][y]='b';break;case 'l':ghouse[x][y-1]=0;printf(" ");printbox(x,y-2);printman(x,y-1);ghouse[x][y-2]='b';break;case 'r':ghouse[x][y+1]=0;printf(" ");printbox(x,y+2);printman(x,y+1);ghouse[x][y+2]='b';break;default: break;}}2)下一个位置是箱子:如果上面是箱子则有b标记,两个b相撞则不能移动3)下一个位置是箱子或墙壁:b与b,b与w相碰则不能移动2),3)例子case 'u':if(!judge(x-1,y)) {gotoxy(y,x);break;} /*(1)人的上面是墙*/else if(judge(x-1,y)==1||judge(x-1,y)==3) /*(2)人的上面是空地或是目的地*/ {if(judge(x,y)==3) /*人的上面是目的地*/ { printwhither(x,y);printman(x-1,y);break;}else{printf(" ");printman(x-1,y);break;} /*人的上面是空地*/}else if(judge(x-1,y)==2) /*人的上面是箱子*/{ if(judge(x-2,y)==1) /*箱子上面是空地*/{movebox(x,y,'u');if(judge(x,y)==3) printwhither(x,y); gotoxy(y,x-1);}else if(judge(x-2,y)==3) /*箱子上面是目的地*/{ moveboxin(x,y,'u');if(judge(x,y)==3) printwhither(x,y); gotoxy(y,x-1);}else gotoxy(y,x);break;}else if(judge(x-1,y)==4) /*人的上面是箱子在目的地*/{ if(judge(x-2,y)==1) /*箱子上面是空地*/{moveinbox(x,y,'u');if(judge(x,y)==3) printwhither(x,y);gotoxy(y,x-1);}else if(judge(x-2,y)==3) /*箱子上面是目的地*/{ moveinboxin(x,y,'u');if(judge(x,y)==3) printwhither(x,y);gotoxy(y,x-1);}else gotoxy(y,x); /*else 情况则包括箱子的下一个状态是箱子或箱子的下一个状态是障碍物(箱子或墙壁)*/break;}7./* 按下空格键后,回到本关开头的函数*/ 如何实现的1)当按下空格键时返回一个i的值2)调用/* 初始化函数,初始化数组和屏幕*/3)调用关卡函数如inithouse1()进行重新开始/* 按下空格键后,回到本关开头的函数*/void reset(int i){switch(i){case 0: init();inithouse1();break;case 1: init();inithouse2();break;case 2: init();inithouse3();break;case 3: init();inithouse4();break;default:break;}}8.主函数设计:1)首先定义了一些变量和指针,然后初始化数组、屏幕和第一关main(){int key,x,y,s,i=0;winer *win,*pw;_AL=3;_AH=0;geninterrupt(0x10);init(); /* 初始化函数,初始化数组和屏幕*/win=inithouse1(); /*设置第一关win指针接收inithouse1返回的图像*/2)设计了一个大的do,while循环条件:重点:是本游戏的主要部分do{_AH=3;geninterrupt(0x10);x=_DH+1;y=_DL+1;while(bioskey(1)==0);key=bioskey(0); /*bioskey 从键盘上返回数值*/switch(key){case 0x4800:move(x,y,'u');break; /* 按下向上键后*/case 0x5000:move(x,y,'d');break; /* 按下向下键后*/case 0x4b00:move(x,y,'l');break; /* 按下向左键后*/case 0x3920:reset(i);break; /* 按下空格键后*/default:break;}s=0; /**switch 每执行一次就触发一次判断**/pw=win;while(pw){if(ghouse[pw->x][pw->y]=='m') s++; /* m(目的地)能和i (箱子在目的地)进行转换*/pw=pw->p;}if(s==0) /* 过关*/{free(win);gotoxy(25,2);printf("Congratulate! Y ou have passed Level %d!",i+1);getch();i++;switch(i) /*调出关卡*/{case 1: init();win=inithouse2();break;case 2: init();win=inithouse3();break;case 3: init();win=inithouse4();break;case 4: gotoxy(8,14);printf("Great! Y ou have passed all the levels! Press any key to quit!");key=0x011b;getch();break;default: break;}}}while(key!=0x011b);_AL=3;_AH=0;geninterrupt(0x10);}3)do循环首先设计了一个while 死循环,接收键盘信息,在进行switch循环将得到的键盘码进行操作(输入的键盘码在case语句中时) while(bioskey(1)==0);key=bioskey(0); /*bioskey 从键盘上返回数值*/switch(key){case 0x5000:move(x,y,'d');break; /* 按下向下键后*/case 0x4b00:move(x,y,'l');break; /* 按下向左键后*/case 0x4d00:move(x,y,'r');break; /* 按下向右键后*/case 0x3920:reset(i);break; /* 按下空格键后*/default:break;}4)接下来又有一个while循环,作用:触发判断和判断是否过关。
推箱子小游戏
推箱子小游戏推箱子是一款经典的益智游戏,目标是将所有的箱子推到指定的位置上。
游戏中有一个角色,通常是一个工人,可以通过上下左右的移动来推动箱子。
以下是推箱子的详细玩法和规则:1. 目标:将所有的箱子推到指定的位置上,完成所有关卡。
2. 规则:- 游戏地图由方格组成,每个方格可以是墙壁、空地、箱子或目标位置。
- 工人可以在空地上自由移动,但不能穿过墙壁。
- 工人可以推动箱子,但只能推一个箱子一格,而且只能向箱子的后面推。
- 箱子只能推到空地上或目标位置上,不能推到墙壁上或其他箱子后面。
- 当所有的箱子都被推到目标位置上时,即可过关。
3. 术语和技巧:- 工人:游戏中的角色,可以通过上下左右的移动来推动箱子。
- 箱子:需要被推到目标位置上的物体。
- 目标位置:箱子需要被推到的指定位置。
- 墙壁:不能通过的障碍物。
- 关卡:游戏中的每个阶段,有不同的地图布局和难度。
- 死锁:当箱子被推到一个位置,无法再继续移动时,即为死锁状态,需要重新开始关卡。
- 重置:当玩家无法继续推动箱子时,可以选择重置关卡,重新开始。
4. 策略和挑战:- 观察地图布局,寻找最佳的推箱子路径。
- 避免死锁状态,尽量避免将箱子推到无法移动的位置。
- 利用箱子和墙壁的位置,合理规划推箱子的顺序和路径。
- 尝试不同的策略和方法,以找到最有效的解决方案。
- 挑战更高难度的关卡,提升自己的推箱子技巧和思维能力。
推箱子是一款富有挑战性和乐趣的益智游戏,通过观察、思考和策略规划,玩家可以享受到解决问题的乐趣。
游戏提供了多个关卡和不同的地图布局,使得每一次挑战都具有新的难度和刺激。
通过尝试不同的方法和策略,玩家可以不断提升自己的推箱子技巧,并享受到解决问题的成就感。
推箱子攻关秘籍
先将由左到右顺序第二列的最下面一个箱子向左移一步,再将左手边挡路的第一列的箱子向上顶至最顶靠左的钱币,将第二列的最上的箱子也向左移一步,将第二列中间的箱子推至左下角最底部的钱币,分别将目前第二列的箱子各向左移一步,将右手上、下两个箱子分别向左各推三步进入各自的钱币区,最后两个箱子分别推入上、下的钱币中即可完成任务。
第十二关:
先将最上的第一个箱子向上顶一步,再向下推两步入钱币,将中间的箱子向上顶两步,将最下的箱子向左推一步入钱币,最后推完余下的箱子完成任务。
第十三关:
这关开始有些难度了,别看箱子少,但确实得花一段时间思考一下呵。先将左数过来的第二个箱子向下推两步,再将左手第一个箱子向左推两步入钱币,将第右手由上往下数的第一个箱子向左推三步入钱币,再将目前并排未入钱币的右数第一个箱子向上顶一步,将第二个箱子向右推一步,好,现在将排成列的右手的箱子由上往下的第一个推至钱币的最上面一枚,最后的箱子推入完成任务。
第十九关:
将最上面的箱子向左挪一步,将它下面的箱子向上顶移入它的位置,将目前它下面的箱子推入钱币的最顶一枚,将第三排的箱子向左推一步,将最后一排的箱子向上顶两步,将左手第一列的箱子向右推一步,将目前工人头顶的箱子向上顶一步,再将这个箱子刚才旁边的箱子推至这个箱子的左手边并排,再将目前倒数第二排的箱子推入钱币左下角,将最下一个箱子推入钱币右下角,最后分别将余下的箱子推入钱币即可完成任务。
呵呵,又来了,往往是箱子越少,难度就越大呵,不过这关虽有些难度,但还难不倒我。
先将左手边最下一个箱子向右走两步,再向上顶一步,将左手边最上的箱子向右推一步,将中间的箱子向下推一步,再向右推两步,将最上的箱子向左推一步回到原位再向下推一步等待,将目前右手边中间的箱子向左推一步,将左边最上箱子推入钱币的左下角,然后将它上面的那个箱子再向右移一步,将等待的箱子推入左上角的钱币,最后将右手最下的箱子向上顶一步移入最后一枚钱币即可完成任务。
推箱子小游戏
推箱子小游戏推箱子是一款益智类小游戏,玩家需要通过推动箱子来完成各个关卡的目标。
游戏的目标是将所有的箱子推到指定的位置上,以完成关卡。
游戏规则如下:1. 游戏地图由方格组成,每个方格可以是空地、墙壁、箱子或目标位置。
玩家通过移动角色来推动箱子。
2. 玩家可以通过上、下、左、右四个方向来控制角色的移动。
角色只能在空地上移动,不能穿过墙壁或箱子。
3. 玩家每次移动可以推动一个箱子,箱子只能朝着玩家推动的方向移动一格。
如果箱子被推到墙壁上或者另一个箱子上,它将无法移动。
4. 箱子需要被推到目标位置上才算完成。
目标位置可以是一个或多个,玩家需要将所有的箱子都推到目标位置上才能过关。
5. 玩家可以按照自己的喜好和策略来移动箱子,但需要注意不要将箱子推到无法移动的位置上,否则可能导致无法完成关卡。
在游戏中,有一些术语和技巧可以帮助玩家更好地完成关卡:1. 箱子的推动顺序很重要。
有时候,推动箱子的顺序会影响后续的移动,因此需要仔细考虑每一步的操作。
2. 使用墙壁和箱子来限制箱子的移动范围。
有时候,将箱子推到一个有限的区域内可以更好地控制它的位置,从而更容易将其推到目标位置上。
3. 利用角色的位置来改变箱子的方向。
有时候,玩家可以通过移动角色的位置来改变箱子的方向,从而更好地控制它的移动路径。
4. 注意避免陷入死胡同。
如果将箱子推到一个无法移动的位置上,可能会导致无法完成关卡。
因此,需要谨慎地考虑每一步的操作,避免陷入死胡同。
推箱子是一款挑战性和有趣的游戏,玩家可以根据自己的喜好和策略来完成每个关卡。
通过不断尝试和思考,玩家可以发现不同的解决方法,提高自己的益智能力和逻辑思维能力。
希望读者能够享受推箱子带来的乐趣,并尝试不同的策略和方法来完成每个关卡。
推箱子关卡详细攻略
第058關的解法如下:
4886
第059關的解法如下:
第060關的解法如下:
第061關到第070關的解法!
第061關的解法如下:
88
第062關的解法如下:
48862
第063關的解法如下:
26888
第064關的解法如下:
224266
第065關的解法如下:
第066關的解法如下:
266268
第067關的解法如下:
86第091關的解法如下:
第092關的解法如下:
688
第093關的解法如下:
6862
第094關的解法如下:
444248
第095關的解法如下:
442666
第096關的解法如下:
第097關的解法如下:
4
第098關的解法如下:
22
第099關的解法如下:
第100關的解法如下:
84468
622
第035關的解法如下:
266
第036關的解法如下:
4
第037關的解法如下:
248
第038關的解法如下:
第039關的解法如下:
22268
第040關的解法如下:
第041關的解法如下:
222
第042關的解法如下:
第043關的解法如下:
第044關的解法如下:
第045關的解法如下:
6888
第046關的解法如下:
搬箱子部分关卡详细攻略(ZT)
第001關的解法如下:
2
第002關的解法如下:
第003關的解法如下:
22688第004關的解法如下:
第005關的解法如下:
第006關的解法如下:
48
推箱子小游戏
推箱子小游戏推箱子是一款经典的益智解谜游戏,目标是将所有的箱子推到指定的位置上。
游戏的规则简单,但挑战性很高,需要玩家运用逻辑思维和空间推理能力。
游戏的目标是将所有的箱子推到指定的位置上,这些位置通常是游戏地图上标有特殊标记的区域。
当所有的箱子都被推到正确的位置上时,游戏就胜利了。
游戏的规则如下:1. 游戏地图由方格组成,每个方格可以是空地、墙壁、箱子或者玩家所在的位置。
2. 玩家可以通过上下左右四个方向移动,但只能移动到空地上。
3. 玩家可以推动箱子,但只能推动与自己相邻的箱子,并且箱子只能向前推动,不能拉回来。
4. 箱子不能被推到墙壁上或者其他的箱子上,否则玩家无法移动箱子。
5. 玩家可以通过撤销上一步操作来回到上一个状态,这样可以避免错误操作导致无法完成游戏。
游戏的玩法如下:1. 玩家通过按下方向键来移动,每按下一次方向键,玩家会向相应的方向移动一个方格。
2. 当玩家移动到箱子旁边时,可以按下方向键来推动箱子。
3. 玩家需要利用地图的布局和箱子的位置来规划移动路径,避免箱子被堵住或者推到错误的位置上。
4. 如果玩家发现自己陷入了困境,可以尝试撤销上一步操作,重新规划移动路径。
在游戏中,有一些术语和技巧可以帮助玩家更好地完成游戏:1. 箱子的位置:玩家需要时刻关注箱子的位置,特别是箱子是否被推到了正确的位置上。
如果箱子被推到了错误的位置上,可能会导致无法完成游戏。
2. 空地的位置:玩家需要利用空地的位置来规划移动路径,避免被箱子或者墙壁堵住。
有时候,玩家需要先移动箱子,然后再利用箱子推动自己到达目标位置。
3. 撤销操作:如果玩家发现自己陷入了困境,可以尝试撤销上一步操作,重新规划移动路径。
撤销操作可以帮助玩家回到上一个状态,避免错误操作导致无法完成游戏。
推箱子是一款需要灵活思维和耐心的游戏,玩家可以尝试不同的策略和方法来完成游戏。
有时候,需要先移动箱子,然后再移动自己;有时候,需要利用墙壁或者其他的箱子来改变移动路径。
推箱子小游戏
推箱子小游戏推箱子是一款经典的益智游戏,目标是将所有的箱子推到指定的位置上。
游戏中有一个角色(通常是一个工人),可以在一个固定大小的场景中移动,而场景中有一些箱子和墙壁。
规则:1. 角色可以向上、下、左、右四个方向移动,但不能穿过墙壁或箱子。
2. 角色只能推动箱子,而不能拉动或推动多个箱子。
3. 箱子只能向前推动一格,不能跳过其他箱子或墙壁。
4. 箱子只能推到指定的位置上,标记为目标点。
玩法:1. 游戏开始时,场景中的箱子和目标点会被随机放置。
2. 玩家通过控制角色的移动,将箱子推到对应的目标点上。
3. 当所有的箱子都被推到目标点上时,游戏胜利。
4. 如果角色被箱子或墙壁困住,无法继续移动,或者所有的箱子都无法推到目标点上,游戏失败。
5. 可以通过撤销上一步操作或重新开始关卡来解决困境。
术语和技巧:1. 目标点:游戏中标记为目标的位置,箱子需要被推到这些位置上。
2. 箱子:游戏中需要移动的物体,只能向前推动一格。
3. 墙壁:固定的障碍物,角色和箱子不能穿过。
4. 撤销:可以撤销上一步操作,回到之前的状态,以便重新思考策略。
5. 重新开始:可以重新开始当前关卡,以尝试不同的方法。
创造性和想象力:推箱子是一个需要思考和计划的游戏,玩家可以尝试不同的策略和方法来解决难题。
一些技巧包括:1. 观察整个场景,找到最佳的推箱子路径。
2. 先推动那些靠近目标点的箱子,以便腾出更多的空间。
3. 利用墙壁和箱子的位置,将箱子推到合适的位置上。
4. 避免将箱子推到死角,以免无法再次移动。
5. 利用撤销功能,尝试不同的策略和方法。
推箱子是一款简单而有趣的游戏,通过不断思考和尝试,玩家可以充分享受解谜的乐趣。
希望你能尝试并发现自己的独特解决方法!。
推箱子
3. 返回失败
Around(节点) {
1. 如果它不可通过或者已经在关闭列表中,略过它。 反之如下。 2. 如果它已经在开启列表中,用当前节点的G值为参 考检查新的路径是否更好。更低的G值意味着更好 的路径。如果是这样,就把这一格的父节点改成当 前节点,并且重新计算这一格的G和F值。如果你 保持你的开启列表按F值排序,改变之后你可能需 要重新对开启列表排序。 3. 如果它不在开启列表中,把它添加进去。把当前格 作为这一格的父节点。记录这一格的F,G,和H值。
搜索完毕
• 我们重复这个过程,直到目标格被添加进 关闭列表。
确定路径
• 从红色的目标格开始,按箭头的方向朝父节点移 动。这最终会引导你回到起始格,这就是你的路 径!
1. 把当前节点添加到开启列表。 2. 重复如下的工作:
2.1 寻找开启列表中F值最低的节点,称之为当前节点。 2.2 把当前节点移动到关闭列表。 2.3 对当前节点的每一个相邻节点
2.4 停止,当你
2.4.1 把目标格添加进了关闭列表,这时候路径被找到,或者 2.4.2 没有找到目标格,并且开启列表已经空了,表示寻径失败。
3. 保存路径。从目标格开始,沿着每一格的父节点移 动直到回到起始格。这就是你的路径。
1. 把当前节点添加到开启列表。 2. 如果开启列表不为空
2.1 寻找开启列表中F值最低的节点,称之为当前节 点。 2.2 把当前节点移动到关闭列表。 多或有规律时遍历 2.3 如果当前节点为目标节点,则保存路径,返回成 功。 2.4 对当前节者已经在关闭列表中,略过它。反 之如下。 少或无规律时枚举 2.3.2 如果它已经在开启列表中,用当前节点的 G值为参考 检查新的路径是否更好。更低的G值意味着更好的路径。 如果是这样,就把这一格的父节点改成当前节点,并且 重新计算这一格的G和F值。如果你保持你的开启列表按 F值排序,改变之后你可能需要重新对开启列表排序。 2.3.3 如果它不在开启列表中,把它添加进去。把当前格作 为这一格的父节点。记录这一格的F,G,和H值。
推箱子理论
推箱子理论今天玩推箱子,玩出一大堆理论。
推箱子就和人生一样,需要做出选择,同样存在挫折,其中既要考虑后路,也有成功的喜悦。
1、从玩游戏的第一关开始,首先选择游戏等级,就是分析你的起点,你觉得能力比较高起点就高,游戏等级就难;2、其次是开始游戏,开始游戏第一步肯定是总揽全局,看整个游戏的布局,以及每个箱子之间的连带关系,开始可以推哪一个,不可以推哪一个,(或者必须推哪一个,游戏越难它的第一步就越“严格”选择的余地也就越少,也可能只有唯一的一种方法、路径;同样第一步也是最关键的第一步,错了,下一步你半步也走不动)也就是针对你做出的选择目标(一个游戏等级就可以是你的一个目标),要对这个目标有一个总体的总结和初步的认识,看你的第一步应该,往哪迈,从哪下手,进入这级游戏;3、第三、你要开始推了,要真的迈步了,这可是你的第一步,一定要迈对了,否则你就被淘汰出局,游戏可以重新再来一次,但是生活就不一样了,只要被淘汰很可能你再也进不来了,就算是能进来你也要等上一段时间,第四、你迈出了第一步,下面就看你的能力(综合分析能力)就要让这个箱子到位,又不要影响其他箱子的移动,这是游戏的基本原则,也是游戏的关键,有的箱子移动过去还可以推回来,如果你违反了基本原则造成其他箱子不能动,那游戏的关键就被你破坏你也只有在退出游戏重新再来,有的游戏设置了后退键,你可以后退重新再来,但后退也只能退几步而已,后退并不是给你的机会,它毕竟增加了这场游戏的时间,你肯定走了弯路,后退不是前进他不会缩短你到达终点的时间(缩短赢得这场游戏的路程)生活中它是平庸的,会有副作用,甚至别人会觉得你没能力,无法胜任这项工作,游戏也有一个时间限制,如果你在规定的时间内没有达到预定目标,你也同样会被淘汰。
下面的每一步都是一步接着一步,一环扣这一环,每一步都不容忽视,都要谨慎对待,认真分析,做出选择;5、第五,游戏的高潮部分每一等级的游戏都有一个最难关,为什么说是高潮部分,是因为这一关过后,后面的就是如鱼得水,一目了然,通俗的说就是简单了,过了这一关面临的就是胜利,随之而来的就是喜悦的心情,这时是最重要、最紧张也是最最关键的的一步,如果你错了,就没有继续玩下去的机会,任何人都不会给你机会,因为前面的已无法改变,已成定局,这一步错了就是全局都废了,永无翻身的机会了,只有重新再来。
吴昊品游戏核心算法Round14——吴昊教你推箱子(priority_queue容器+BF。。。
吴昊品游戏核⼼算法Round14——吴昊教你推箱⼦(priority_queue容器+BF。
在吴昊品游戏核⼼算法Round 1中,我有介绍⼀个“企鹅推箱⼦”的游戏,我们来回顾⼀下⼀个经典游戏是如何经过包装,最后成为⼀个崭新的游戏的。
⾸先是美⼯,通过3D的画⾯,给⼈⼀种震撼⼒,在UI⽅⾯,考虑到智能⼿机的触屏特性,制造出很多的“动态效果”。
在算法⽅⾯,通过搜索算法的引⼊,给游戏制造了⼀种附加功能,就是,你可以通过搜索让⾃⼰告诉你应该如何进⾏下⼀步的⽅向控制(这⼀点有点像连连看中的放⼤镜提⽰)。
在这样的经典游戏中,往往就这么⼀个⼩插件就会给整个游戏增⾊不少。
关于推箱⼦问题的解法的时间复杂度,最终被证明是NP难的,⽽且后来⼜被证明是PSPACE完全的,其具体的证明步骤我会在后⾯的⽂章中给出(准确说应该是转载吧,那位⼤神的名字是杨超⽼师)。
推箱⼦简介:《推箱⼦》(倉庫番)是⼀款经典,由公司⾸次发⾏。
之后其他游戏开发者争相制作仿制或衍⽣作品。
致使推箱⼦成为此类游戏的代名词。
游戏要求玩家在上把推到指定地点,当中牵涉到⼤量的空间逻辑推理。
推箱⼦的规则:第⼀个《推箱⼦》的游戏规则,则是扮演⼯⼈的玩家,以“推”的⽅式,推动箱⼦。
可以在没有阻碍物(如墙壁等的阻碍物)的情况下,向、、、的地⽅移动。
将箱⼦移动到指定点,达到指定数量,即可过关。
但玩家移动箱⼦,有下列条件要注意:推到墙壁的箱⼦,玩家就不可以背对墙壁,把箱⼦推回到空处。
即箱⼦只能以“被推”的⽅式被移动,不是以“被拉”的⽅式被移动。
但如果玩家推⾄墙壁后,垂直墙壁的两侧没有阻碍物,则玩家可以朝这两个不同的⽅向推移箱⼦。
⼀旦箱⼦被移动到⾓落,玩家没有任何⽅法再移动这个被推到⾓落的箱⼦。
玩家不可同时推动两个或以上的箱⼦。
假设⼯⼈⾯前有⼀个箱⼦,箱⼦的正前⽅⼜有⼀个箱⼦,则这两个箱⼦是不能被推动的(这个假设可以暂时不予以理睬,我以后会说明推箱⼦的各种变体,会提出推三个箱⼦游戏的玩法)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二十六关:
熬了个宵就是没能把这关攻破,只好等待高手来破了。。。。
第二十七关:
此关也有相当的难度。先将脚下的箱子向左推至墙边贴在一个箱子的上面,此时将下面的箱子向左推一步,将倒数二排的箱子向下推两步,再将第一个推到的箱子向下推两步,将右列最下的箱子向上一步,再向左推到墙边,按此时的画面,从右起,将第二列上一个箱子推到钱币区中间红砖墙的下面,我将此箱称为 A 箱,将第三列的箱子推入左上角钱币,将第二列的第二个箱子( B 箱)推至钱币区右下角的钱币不动,然后将 A 箱向左推一步,再向右推回一步,将 B 箱推入左下角钱币;此时的画面,将最左列的箱子按照上一步的方法推至钱币区里的下排的第三枚钱币,此时将最底下的箱也按此方法推入钱币区由左向右数下排的第四枚钱币,紧接着将左列最下的箱子推入上排第二枚钱币,然后依次将箱子区内的三个箱子分别推入上排的钱币,将 A 箱推入下排第二枚钱币,最后一个箱子,将它向下推一步,向左推三步,最后推入最后余下的钱币完成任务。
第十四关:
呵呵,这关可是考人的心志模式咯!分别将上面并排的箱子的两端的箱子向下各推一步,将中间的箱子向左推一步(当然向右也可以),将刻有字的箱子向下推一步(这步要大胆的推呵,因为以前的箱子凡有刻字的均不需推动),将右手上面的箱子向上顶一步,将下面并排的箱子,右起第一个向上顶入上面的第一个钱币,将左手的第一个箱子顶入左手的第二枚钱币,将刚才刻有字但被挪动的箱子推入右手的第二枚钱币中,最后将最上面两端的箱子分别推入余下的钱币中完成任务。
第二十八关:
此关看似复杂,却不难,关键是把箱子区的箱子理顺好,为推入钱币区作好铺路工作,钱币区也是一样,需要理顺,准备等待着工人将箱子推入。
具体步聚:先将脚下的箱子向下一步,再将第二排左右两箱各朝两边推一步,将最下一排的箱子,左二及右二各向下推一步,再将中间的箱子向左或者右推一步(我这里是向右),此时将头顶的箱子向下推五步,再右推一步,将钱币区里的箱子的第二排中间的箱子向下一步,将第二排两边的箱子各朝两边方向推进一步,此时将倒数第二排的两个箱子分别向下各推入一步,将倒数第二排余下的箱子推靠贴左墙或右墙(我推至左墙),将倒数第三排的中间的三个箱子分别推至最角落排好,将第一排两个箱子各朝左右方向各推进一步,将刚才从箱子区推进来的箱子推到底层放置好任意一个位置,最后按照从下往上的顺序,将箱子区里所有的箱子推入钱币区,完成任务。
第一关:
直接将箱子推向钱币处就完成任务,此关是给大家一个基础练习,知道先点击一下箱子,然后再点击一下钱币,工人会自动帮助将箱子推向所想推到的位置。
第二关:
先将最下面的箱子推向最里面的钱币,然后再点击最外的箱子,推向第二个钱币,最后将余下的箱子推进最后一枚钱币。
第十一关:
先将脚下的箱子向左挪一步,再将第二排的箱子向下推至与第三排箱子并排,然后将最上的箱子推至第一枚钱币,再将并排的箱子的右手箱子直接顶回到第二枚钱币,最后按从下往上的顺序将最后的两箱推入相应的钱币即完成任务。
第十二关:
先将最上的第一个箱子向上顶一步,再向下推两步入钱币,将中间的箱子向上顶两步,将最下的箱子向左推一步入钱币,最后推完余下的箱子完成任务。
第十九关:
将最上面的箱子向左挪一步,将它下面的箱子向上顶移入它的位置,将目前它下面的箱子推入钱币的最顶一枚,将第三排的箱子向左推一步,将最后一排的箱子向上顶两步,将左手第一列的箱子向右推一步,将目前工人头顶的箱子向上顶一步,再将这个箱子刚才旁边的箱子推至这个箱子的左手边并排,再将目前倒数第二排的箱子推入钱币左下角,将最下一个箱子推入钱币右下角,最后分别将余下的箱子推入钱币即可完成任务。
第五关:
将挡路的箱子向右推两步,将右下角的箱子向上顶两步,将中间的箱子推入最里的钱币,将第一个箱子推入中间的钱币,最后将余下的箱子推入最后的钱币。
第六关:
将中间右下角的箱子推至目前工人所站位置的头顶,然后将另三个箱子按顺时针的顺序推入相邻的钱币,最后将第一个推动的箱子再直顶入钱币中。
第十八关:
此关看似复杂,实际简单得很。先将最靠近工人的第一个箱子向上顶一步,再将右边由上而下的第一个箱子向上顶两步,再向下推回一步,以便让工人有路通过,将左手的唯一的箱子推至钱币右下角,然后将原刻有字的箱子向右推三步,再向左直推至最靠左墙的钱币,将中间的箱子向左推两步,在钱币上方等待,再将右手最上的箱子重复一便让工人通过,将等待的箱子直接推入底端的钱币,将左边的箱子推入中间的钱币,将右边最下的箱子推入最顶的钱币,最后的箱子推入右边的钱币即可完成任务。
第二十二关:
将最下的箱子向左推两步,将目前头顶的箱子向上顶两步,将目前右列最下的箱子向左移一步,将左列的两个箱子分别向右各推一步入钱币,将最下的箱子向右推三步,将它上面的箱子推入钱币的右下角,将最上的箱子向左推进一步,将最后的箱子推入补齐完成任务。
第二十三关:
将头顶的箱子向上顶两步,将原先与它并排的箱子向下推一步,再将第一个箱子向下推一步,此时将右手边及左手边的箱子分别推至钱币的右下角的第一及第二个位置,此时将正数下来的第二个箱子向左移一步,然后再分别把最下面的两个箱子分别推入钱币的左列的两个位置,向右横推正数下来的第二个箱子三步,将最后的箱子推入最后的钱币完成任务。
第十六关:
这关比较容易,将右手边最上的箱子向左推一步,将贴近后的另两个箱子分别向下各推一步,再将第一个箱子向左再推一步,将中间的箱子推至右上角最里的钱币,将第一个被推动的箱子推入左上角最顶的钱币,将左手余下的两箱子分别推入第二排的两个钱币中,然后按由上至下的顺序将最后两箱推入钱币中完成任务。
第十三关:
这关开始有些难度了,别看箱子少,但确实得花一段时间思考一下呵。先将左数过来的第二个箱子向下推两步,再将左手第一个箱子向左推两步入钱币,将第右手由上往下数的第一个箱子向左推三步入钱币,再将目前并排未入钱币的右数第一个箱子向上顶一步,将第二个箱子向右推一步,好,现在将排成列的右手的箱子由上往下的第一个推至钱币的最上面一枚,最后的箱子推入完成任务。
第八关:
直接将中间的箱子顶入品字形的箱子中形成连体,将并排的三个箱子中的右手箱子直接顶至最顶的钱币,将最品字形最顶的箱子向左推一步,将并排的两个箱子的右手那个直顶入最高的钱币中,将最下的箱子直顶入钱币,将竖排两箱子的最下那个箱子推入中间的钱币,最后再完成最后一个箱子。
第九关:
第七关:
从下往上,将第一个箱子向右推一步,将第二个箱子向上顶一步,将最上的箱子推入最顶的钱币,然后将并排的三个箱子右手边的第一个推入第二枚钱币,将并排的两个箱子的左手那个箱子向上顶一步,将右手的箱子推入钱币的最下一枚,将上墙的箱子向右直推入第三枚钱币,最后余下的箱子推入最后的钱币中。
第二十五关:
由上往下将第二个箱子向左推四步,与钱币区顶上的箱子重叠,将由下往上倒数第三个箱子朝左推动四步入钱币区,将最上面的箱子推入紧挨着第一个已推入的第一个箱子,将最先挪用动的箱子推回原位,再将它原先重叠的箱子向下推入钱币区的左上角,将最下的箱子朝左推一步,再将倒数第二个箱子向上推两步,紧接着往回推一步,再向左推两步,将最下面的箱子向右推一步,再向上顶三步,此时将所站位置左手的箱子向左再推入一步,与原先已推入钱币区的箱子并排连成一线,再将刚才最下面的箱子推入也并成一线,最后的箱子也推入最上的钱币完成任务。
第二十关:
先将由左到右顺序第二列的最下面一个箱子向左移一步,再将左手边挡路的第一列的箱子向上顶至最顶靠左的钱币,将第二列的最上的箱子也向左移一步,将第二列中间的箱子推至左下角最底部的钱币,分别将目前第二列的箱子各向左移一步,将右手上、下两个箱子分别向左各推三步进入各自的钱币区,最后两个箱子分别推入上、下的钱币中即可完成任务。
第十七关:
呵呵,又来了,往往是箱子越少,难度就越大呵,不过这关虽有些难度,但还难不倒我。先将左手边最下一个箱子向右走两步,再向上顶一步,将左手边最上的箱子向右推一步,将中间的箱子向下推一步,再向右推两步,将最上的箱子向左推一步回到原位再向下推一步等待,将目前右手边中间的箱子向左推一步,将左边最上箱子推入钱币的左下角,然后将它上面的那个箱子再向右移一步,将等待的箱子推入左上角的钱币,最后将右手最下的箱子向上顶一步移入最后一枚钱币即可完成任务。
第十五关:
这关是我过关以来遇到的最难的,想了我一个晚上才将它解开,但可能对其他人来说未必会象我这样呵! 将左手最上及最下的箱子分别向右移一步,将左手中间的箱子向上顶一步,将右手中间的箱子向左推一步,将左手最上的箱子向下推两步,然后向左推两步,将右手最下的箱子向上顶两步,将中间最下的箱子向下推入最底的钱币,将左手最下的箱子向右推入钱币,将两边未入钱币的箱子分别向下各挪一步,将从上往下数的第二个箱子向左移一步,将最上的箱子顶入最顶的一枚钱币,将中间的箱子向下推至倒数的第二枚钱币,将右边的箱子向左推入钱币,将左边上数第一个箱子向右推入钱币,最后的推余下的箱子入钱币完成任务。
第二十四关:
其实越复杂的东西,要解开迷的话,却是最简单的,此关闭着眼,谁都可以轻易地过关的。
将挡路的箱子向上顶两步,将右手的箱子向右推一步,将刚才挡路的箱子推入钱币区最顶端(左、右都可,我这里是推至左侧),将右列第二列的箱子向上顶至墙边,将右列的三个箱子由下至上分别推入钱币区里的右侧顶端,及左、右下角各一枚的位置,此时的四列箱子中,从左到右数,工人将第二列的最下的箱子向上顶至墙边,将右手最底端的箱子推至左钱币区左侧的从上往下数的第二枚钱币的位置,由上往下数,将第二排的箱子向右移动一步,此时将头顶的箱子推至钱币区右侧由上往下数的第二枚钱币位置,最后按照由下往上,由左往右的顺序将余下的箱子依次推入钱币区即可完成任务。
先将右边中间的箱子推入左下角的钱币中,再将右手边的上下两箱分别推入左手边的中、上两钱币,将最上挡路的箱子向左推一步,将中间挡路的箱子向下推两步,将最下的箱子推入右下角的钱币中,最后将余下的两个箱子分别推入右手的钱币中就完成任务。