减谈迷宫C++
来源:互联网 发布:搜索引擎数据库设计 编辑:程序博客网 时间:2024/04/30 13:51
今天老师让做了个迷宫问题,我一看到就发现和我之前写过的一个程序是一样 的,但是在后来编写的时候有一个地方搞错了,最后下课了我还是没有正确的编写好,然后今天回来之后自己有看了一下,现在已经解决了。
#ifndef DIRECTION_H
#define DIRECTION_H#include<iostream>
using namespace std;
struct node
{
int a;
int b;
};
class Direction
{
public:
Direction();
~Direction();
void DFS(int n, int m);
void udlr(int &n, int &m, int num);
void durl(int &n, int &m, int num);
void output();
private:
int **a;
int **visit;
node zxh[64];
int count1;
};
Direction::Direction()
{
count1 = 0;
a = new int*[8];
visit = new int*[8];
for (int i = 0; i<8; i++)
{
a[i] = new int[8];
visit[i] = new int[8];
}
for (int i = 0; i<8; i++)
{
zxh[i].a = -1;
zxh[i].b = -1;
}
int b[] = { 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0, 1, 0,
0, 1, 0, 0, 0, 0, 1, 0,
0, 1, 0, 1, 1, 0, 1, 0,
0, 1, 0, 0, 1, 0, 0, 0,
0, 1, 0, 0, 1, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 0 };
for (int i = 0; i<8; i++)
{
for (int j = 0; j<8; j++)
{
a[i][j] = b[i * 8 + j];
visit[i][j] = 0;
}
}
}
Direction::~Direction()
{}
void Direction::udlr(int &n, int &m, int num)
{
if (num == 1)
n--;
else if (num == 2)
n++;
else if (num == 3)
m--;
else
m++;
}//著名方向
void Direction::durl(int &n, int &m, int num)
{
if (num == 1)
n++;
else if (num == 2)
n--;
else if (num == 3)
m++;
else
m--;
}//著名方向
void Direction::output()
{
int num = 0;
while (zxh[num].a != -1)
{
if (num % 7 == 0)
cout << endl;
cout << "(" << zxh[num].a << "," << zxh[num].b << ")"<<" ";
num++;
}
}
void Direction::DFS(int n, int m)
{
if (n == 7 && m == 7)
{
output(); cout << endl; return;
}
else
{
for (int i = 1; i < 5; i++)
{
udlr(n, m, i);
if (n >= 0 && n < 8 && m >= 0 && m < 8 && a[n][m] == 0)
{
zxh[count1].a = n;
zxh[count1].b = m;
count1++;
a[n][m] = 1;
DFS(n, m);
a[n][m] = 0;
count1--;
zxh[count1].a = -1;
zxh[count1].b = -1;
}
durl(n, m, i);
}
}
}
#endif
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include"Direction.h"
#include<iostream>
using namespace std;
int main()
{
Direction z;
z.DFS(0,0);
return 0;
}
5 0
- 迷宫(C++)
- 【C++】迷宫
- 减谈迷宫C++
- C语言迷宫求解
- c写的迷宫
- C 语言 DFS 迷宫
- C迷宫源代码
- c解决迷宫问题
- 迷宫问题学习C
- 迷宫C实现
- wikioi迷宫c
- c语言 迷宫游戏
- C语言 迷宫求解
- 数据结构-栈/c++/迷宫
- 迷宫问题c程序
- C++—迷宫游戏
- 【C语言】迷宫游戏
- 迷宫求解C/C++
- 网络编程练习-key套接字
- Cloudflare Web Application Firewall Review
- C实现的九九乘法表
- 2-2
- 正则表达式和学习资料
- 减谈迷宫C++
- TestFlight Beta 备忘
- Oracle DBLink 将远程数据库的数据拷贝到本地数据库
- 电脑桌面消失的文件怎么修复?
- P52第22题
- Name Mangling in C++
- 【POJ】1990-MooFest(树状数组or线段树)
- Netty4详解二:开发第一个Netty应用程序
- SQLServer 数据加密解密:将 TDE 保护的数据库移到其他实例(二)