poj 1475 推箱子】的更多相关文章

bfs是一层层的遍历下去,每多一层即为多走一步,因此只要遇到T就停,此时肯定是最小步数. 所以这两层bfs应为,先对箱子的最少步数进行bfs,从而求出推箱子所用最少步数: 然后箱子bfs内部嵌入人的bfs,从而箱子每走一步,判断一下这个移动能否由人来完成(由箱子的移动倒推人应该在的位置,看这个位置是否合理). 一.http://tech.artyoo.me/?p=282 #include <map> #include <set> #include <queue> #in…
推箱 时限:n.2000MS   内存限制:n.131072K 提交材料共计: 6600   接受: 2263   特别法官 描述 想象一下你站在一个二维迷宫里,由方形细胞组成,它们可能或可能不会充满岩石.你可以在一个台阶上移动北.南.东或西一个单元.这些动作叫做步行.其中一个空单元包含一个盒子,它可以通过站在盒子旁边移动到相邻的自由单元格,然后移动到盒子的方向上.这样的举动叫做推.盒子不能用任何其他方式移动,而不是推,这意味着如果你把它推到角落里,你就再也无法把它从角落里弄出来了. 其中一个空…
自古逢秋悲寂寥,我言秋日胜春朝. 晴空一鹤排云上,便引诗情到碧霄. --刘禹锡 题目:推箱子 网址:http://poj.org/problem?id=1475 推箱子游戏相信大家都不陌生,在本题中,你将控制一个人把1个箱子到目的地. 给定一张N行M列的地图,用字符"."表示空地,字符"#"表示墙,字符"S"表示人的起始位置,字符"B"表示箱子的起始位置,字符"T"表示箱子的目标位置. 求一种移动方案,使箱…
Curling 2.0 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14090   Accepted: 5887 Description On Planet MM-21, after their Olympic games this year, curling is getting popular. But the rules are somewhat different from ours. The game is…
http://poj.org/problem?id=1475 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=249 Pushing Boxes Time Limit: 2000MS   Memory Limit: 131072K Total Submissions: 4662   Accepted: 1608   Special Judge Description Imagine you are standing insid…
题目地址: http://poj.org/problem?id=1475 两重BFS就行了,第一重是搜索箱子,第二重搜索人能不能到达推箱子的地方. AC代码: #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <string> #include <vector> #inc…
#include<stdio.h> #include<stdlib.h> int main(void) { char sr;//存储用户输入的指令 //绘制地图 char a[11][20]={ "###################", "###################", "### $ $ ###", "### ##### ###", "### ###", "…
前两天做了推箱子小游戏,看似简单的一个小游戏背后却 有巨大的秘密,这秘密就是一大堆逻辑. 自从学习了函数过后,的确是解决了很多问题,而且调用很方便,尽管我现在都不是很会调用. 写完一个函数,准备测试一下的时候就蒙b了.最开始是要解决目标的问题,用了一个结构体来 定位.然后还要定位到要到小人的位置,输出地图,里面的墙.目标和箱子都是用数字来代替的 所以,给地图定了两个轴 x y 这样就解决了小人移动的问题,而地图是用数组来组件的,利用 x y + - 就能办到移动的问题,但是还有一需要一起移动的箱…
推箱子游戏是老游戏了, 网上有各种各样的版本, 说下推箱子游戏的简单实现,以及我找到的一些参考视频和实例: 推箱子游戏的在线DEMO : 打开 如下是效果图: 这个拖箱子游戏做了移动端的适配, 我使用了zepto的touch模块, 通过手指滑动屏幕就可以控制乌龟走不同的方向: 因为推箱子这个游戏比较简单, 直接用了过程式的方式写代码, 模块也就是两个View 和 Model, 剩下就是用户的事件Controller, 用户每一次按下键盘的方向键都会改变数据模型的数据,然后重新生成游戏的静态htm…
思路分析: 一.制作一个地图 二.地图中放置墙.箱子.人.目标等 三.让小人动起来完成推箱子动作 游戏制作: 1.按照上述地图制作一个地图  (12行×13列) 地图可以看做是行和列组成的,即可以看做是由二维数组组成的 2.实体化:将0转换为空格,1转换为黑色方块 3.设置箱子.人.目标点 4.先让小人动起来,实现小人向上移动,因为坐标的交换,所以箱子向下移动了,同理,改变坐标可以实现向左.向下.向右移动 向下移动:y+1;向左移动:x-1;向右移动:x+1; 5.实现推箱子,以向上移动为例,其…
推箱子 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6021    Accepted Submission(s): 1718 Problem Description 推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推箱子而不能拉箱子…
>_<:Here introduce a simple game: >_<:resource >_<:only can push a box and finally arrive the gate. #include <windows.h> // C 运行时头文件 #include <stdlib.h> #include <cstdio> #include <malloc.h> #include <memory.h&…
本文转自:http://www.alixixi.com/Dev/W3C/Flash/2007/2007070868666.html 概述: Flash ActionScript2.0是一种面向对向的编程语言,利用它可以开发出功能强大的应用程序.以早期的ActionScript 1.0相比,它在结构化编程上具有明显的优势,可以使程序具有更强的可移植性,可重性,和伸缩性. 本文通过一个推箱子游戏的开发过程来逐步讲述如何利用ActionScript2.0 进行开发. 结构分析: 在进行一个项目的开发前…
题目大意 人推箱子从起点到终点,要求推箱子的次数最少,并打印出来人移动的路径. 题目分析 对于箱子进行宽搜的同时,要兼顾人是否能够把箱子推到相应的位置 每一次对箱子bfs 然后对人再bfs #include<cstdio>#include<cstring>#include<queue>#include<cmath>#include<iostream>#include<algorithm>#include<string>us…
网吧充值系统namespace ConsoleApplication1 { class Program { struct huiyuan { public string name; public string password; public double yue; } static void Main(string[] aaa) { ArrayList Ul = new ArrayList(); while (true) { try { Console.WriteLine("请输入您要执行的操…
经过四次的修改和优化,终于将推箱子这个游戏完整的写出来了,今天就像大家分享一下这个游戏的编写. 这个游戏界面的编写总的来说不困难,主要是推动箱子的算法. (1)利用数组和windows api 即可写出界面 #define N 15 #define M 15 int map[N][M] = { { , , , , , , , , , , , , , , }, { , , , , , , , , , , , , , , }, { , , , , , , , , , , , , , , }, { ,…
推箱子 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5343    Accepted Submission(s): 1503  Problem Description 推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推箱子而不能拉箱…
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1254 题目分析: 做这道题,感觉挺简单的,做着做着就错了20次, 我也是醉了, WA到吐的节奏啊! 思路: 1.标记人的位置 和 箱子的位置两个动态坐标 来判断是否这个状态出现过, 但是有一点要, 虽然人和箱子同时出现了重复状态 但是还有一个状态需要考虑,就是推箱子的步数, 虽然到达了同样的地点但是,步数不一样也是不一样的状态.下面会有个数据可以观察一下. 2.结构体里保存  人的坐标, 箱子的坐标…
这题做的一把鼻涕一把泪,果断考虑不周555 Problem Description 推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推箱子而不能拉箱子,因此如果箱子被推到一个角上(如图2)那么箱子就不能再被移动了,如果箱子被推到一面墙上,那么箱子只能沿着墙移动.现在给定房间的结构,箱子的位置,搬运工的位置和箱子要被推去的位置,请你计算出搬运工至少要推动箱子多少格.   Input 输入数据的第一…
推箱子源代码初步: #include<stdio.h> #include<conio.h> #include<stdlib.h> #define boolean int #define true 1 #define false 0 #define ROWS 10 //之所以定义为11,是因为字符串的尾部的\0 #define COLUMNS 11 //根据程序定义或者文件读入来构建地图,然后把他绘制到屏幕上 void DrawMap(char map[][COLUMNS…
<head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>推箱子</title> <meta name="keywords" content="关键字列表" /> <meta name="description" content=&qu…
前言 偶然间看到很多用js写游戏的感觉很炫酷的样子,所以就想试试,就看了一些资料和某前端站点的视屏.于是乎就自己动手实践了一下,上推箱子截图 感觉很丑陋,但是功能是实现了.再说貌似大多都是这样的吧,这一关其实还是有点难度的,我做完之后想检测一下下一关正确么,居然玩了20分钟才通关. 如果你看到这张图让你想起了你童年的回忆,说明你老了,这里可以试玩一下(很遗憾没有链接地址,最后又源码可以下载). css布局 主要考虑的是地图是怎么动态生成的,地图中有灰色的,还有墙,箱子,蓝色,红色背景,人物.先看…
我写的第一道感觉比较难的搜索 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1254 首先要推箱子的话要满足人能够在箱子旁边,而且人的对面也是可通的. 我的思路: 先判断箱子周围的空地(即可能能被人推到的格子),然后判断人是否能够达到即将推箱子的位置,在这里我用BFS嵌套DFS,其中BFS用优先权队列进行维护,每次取步数最少的当前箱子的位置,然后对于当前箱子可以到达的位置来说,DFS人,判断人能否到达推箱子的位置. 在这里,重要的一点是,对于一个当…
最近没什么事情,我的一个亲戚在学校学习PHP,课程中老师让他们编写一个javascript版本的推箱子小游戏,他没什么头绪,就来问我,我当时很闲,就随口答应他包在我身上.结果真正写的时候还是花了点时间,最后写出来的成品也有各种问题,在这里希望大家能一起探讨学习!(大神们请屏蔽鄙人的粗糙简单) 首先看一下最终的效果图,,不好意思,只是做了个简化版本,图中黄色的块是我们控制来推动的盒子,粉红色的块是被推的盒子,红色的块表示最终要被推到的位置,黑色的快表示墙,盒子不能穿过墙,游戏的方向控制使用wasd…
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 推箱子是一款经典游戏.如图所示,灰色格子代表不能通过区域,蓝色方格是箱子,黑色圆形代表玩家,含有圆点的格子代表目标点. 规定以下规则: 1.一局游戏中只会有一个箱子,一个玩家和一个目标点. 2.通过方向键控制玩家移动. 3.图中的灰色格子代表墙壁,玩家与箱子都不能通过. 4.推到墙壁的箱子,就无法再将箱子推离墙壁,因为玩家无法到达箱子靠墙壁的一侧去推箱子.也就是说箱子只能以"被推"的方式被移动,不是以&quo…
/* 推箱子小游戏 1.定义绘制样式 用二维数组的方式 2.绘制图像 3.找出当前位置 4.逻辑判断,制造动作 根据数学xy轴的规律,这里使用ij 上移,行轴上升,行数减少 下移,行数下降,函数增加 左移,列数向左,列数减少 右移,列数向右,列数增加 */ #include <stdio.h> #include <stdlib.h> #include <conio.h> #define ROWS 8 //行数 #define COLS 9 //列数 ; //行轴 ; /…
          // 游戏菜单.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include"windows.h" #define KEY_DOWN(vk_code) (GetAsyncKeyState(vk_code)&0x8000?1:0) using namespace std; sDATA g_Player; sDATA g_Box[]; int _tm…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>用HTML5+原生js实现的推箱子游戏</title> <link rel="stylesheet" href="css/style.css"> </head> <body onkeydown="doKeyDown(e…
Imagine you are standing inside a two-dimensional maze composed of square cells which may or may not be filled with rock. You can move north, south, east or west one cell at a step. These moves are called walks. One of the empty cells contains a box…
用链表实现栈一开始在表头插入,就要一直在表头插入一开始在表尾插入,就要一直在表头插尾表头当栈底 也可以把表尾当栈底 实现的测试代码笔记如下: #include<stdio.h> #include<stdlib.h> #include<string.h> //节点的结构体 typedef struct Node { char *name; struct Node *pNext; }LIST, *PLIST; //1.创建“火车头” 创建一个表头 void CreateLi…