- 2
- 0
- 约4.24千字
- 约 9页
- 2018-01-01 发布于河南
- 举报
POJ 3984 迷宫问题
POJ 3984 迷宫问题
// 定义一个二维数组:
//
// int maze[5][5] = {
// 0, 1, 0, 0, 0,
// 0, 1, 0, 1, 0,
// 0, 0, 0, 0, 0,
// 0, 1, 1, 1, 0,
// 0, 0, 0, 1, 0,
// };
//
// 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。
#include iostream
using namespace std;
class Maze //迷宫类
{
public:
void SetMaze(int [][5],int,int);//申明是必须指定二维数组的长度y
void SetMaze_pot(int,int,int,int);//输入迷宫,以及入口位置,出口位置
void GetMaze_way();
private:
int maze[5][5];
int way[100][2];//路径数组
int num;
int num1;
int num2;//计数器
int total_choise[100];//总共的可供选择数
int ori[5][5][4];
int start_x;
int start_y;
int finish_x;
int finish_y;
int Maze_pro(int,int,int,int );//输入当前节点坐标以及前一节点坐标,输出下一节点坐标和当前坐标
};
int main()
{
// int maze[5][5] ={
// 0, 1, 0, 0, 0,
// 0, 1, 0, 1, 0,
// 0, 0, 0, 0, 0,
// 0, 1, 1, 1, 0,
// 0, 0, 0, 1, 0,
// };
int maze[5][5] ={
1, 0, 1, 1, 1,
1, 0, 0, 0, 1,
1, 0, 1, 0, 1,
1, 0, 0, 0, 0,
1, 1, 1, 1, 1,
};//你需要测试的迷宫
Maze M;
M.SetMaze(maze,5,5);
/* M.SetMaze_pot(0,0,4,4);*/
M.SetMaze_pot(0,1,3,4);//测试迷宫所用的出入口(x,y)
M.GetMaze_way();
return 0;
}
void Maze::SetMaze(int arr[][5],int m,int n)//将二维数组传入函数中
{
for (int i=0;im;i++)
{
for (int j=0;jn;j++)
{
maze[i][j] = arr[i][j];
}
}
}
void Maze::SetMaze_pot(int x1,int y1,int x2,int y2)
{
start_x = x1;
start_y = y1;
finish_x = x2;
finish_y = y2;
num = 0;
way[0][0] = 0;
way[0][1] = 0;
for (int i = 0; i 5;i++)
{
for (int j = 0;j 5;j++)
{
ori[i][j][0] = 1;//1表示未走过,0表示已走过
ori[i][j][1] = 1;
ori[i][j][2] = 1;
ori[i][j][3] = 1;
}
}
}
int Maze::Maze_pro(int x,int y,int fx,int fy)
{
int tempx,tempy;
tempx = x;
tempy = y;
total_choise[num] = (maze[x+1][y]!=1x+1!=fxx+15ori[tempx][tempy][0]!=0)
+(maze[x-1][y]!=1x-1!=fxx-1=0ori[tempx][tempy][1]!=0)
+(maze[x][y+1]!=1y+1!=fyy+15ori[tempx][tempy][2]!=0)
+(maze[x][y-1]!=1y-1!=fyy-1=0ori[tempx][tempy][3]!=0);
if (x == finish_x y == finish_y)//无路可走
{
num1 = num;
cout需要走num1+1步endl;
cou
您可能关注的文档
- mysqldump详解.doc
- MySQL_性能监控项解读.doc
- mysql创建表.doc
- mysql基础优化.doc
- MySQL大数据查询.doc
- Mysql实战优化.doc
- mysql数据库备份及瘦身.doc
- Mysql数据库双向同步.doc
- MySQL语法参考.doc
- MySQL速成.doc
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
最近下载
- 广东省2024年普通专插本《政治理论》考试真题及参考答案.doc VIP
- 贵州省黔南布依族苗族自治州2023-2024学年九年级上学期期末数学试题(含答案).doc VIP
- (部编版)道德与法治必背八年级上册 思维导图+核心知识点 .pdf VIP
- 民用爆炸物品爆破作业安全评估指南.pptx
- 广东省2025年普通专插本考试《政治理论》真题及答案.docx VIP
- 交管12123学法减分试题库500题(含答案).pdf VIP
- 新译林版高中英语选择性必修一 unit 1词汇默写本.docx VIP
- 2025年上海杉达学院单招笔试英语试题库含答案解析.docx VIP
- 卡萨帝BCD-301WN电冰箱使用说明书.pdf
- 2025年上海立达学院单招笔试英语试题库含答案解析.docx VIP
原创力文档

文档评论(0)