今天老师让做了个迷宫问题,我一看到就发现和我之前写过的一个程序是一样 的,但是在后来编写的时候有一个地方搞错了,最后下课了我还是没有正确的编写好,然后今天回来之后自己有看了一下,现在已经解决了。

#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;

}

减谈迷宫C++的更多相关文章

  1. 浅谈我对DDD领域驱动设计的理解

    从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决. 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品 ...

  2. 谈一下关于CQRS架构如何实现高性能

    CQRS架构简介 前不久,看到博客园一位园友写了一篇文章,其中的观点是,要想高性能,需要尽量:避开网络开销(IO),避开海量数据,避开资源争夺.对于这3点,我觉得很有道理.所以也想谈一下,CQRS架构 ...

  3. CSS布局 ——从display,position, float属性谈起

    页面布局,或者是在页面上做些小效果的时候经常会用到 display,position和float 属性,如果对它们不是很了解的话,很容易出现一些莫名其妙的效果,痛定思痛读了<CSS Master ...

  4. java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)

    获取周的第一天,最后一天 System.out.println(getStartEndDate("2016-05-01", 1)); 获取星期的第一天和最后一天 System.ou ...

  5. 转:浅谈C/C++中的指针和数组(一)

    再次读的时候实践了一下代码,结果和原文不一致 error C2372: 'p' : redefinition; different types of indirection 不同类型的间接寻址 /// ...

  6. 浅谈C++源码的过国内杀软的免杀

    以下只是简单的思路和定位.也许有人秒过,但是不要笑话我写的笨方法.定位永远是过期不了的. 其实这里废话一下 , 本人并不是大牛 ,今天跟大家分享下 .所以写出这篇文章.(大牛飘过) 只是个人实战的经验 ...

  7. CSS布局 ——从display,position, float属性谈起(转)

    CSS布局 ——从display,position, float属性谈起   页面布局,或者是在页面上做些小效果的时候经常会用到 display,position和float 属性,如果对它们不是很了 ...

  8. (转载)浅谈我对DDD领域驱动设计的理解

    原文地址:http://www.cnblogs.com/netfocus/p/5548025.html 从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来 ...

  9. 前阿里CEO卫哲谈阿里创业经验:如何找人、找钱、找方向?(不同的阶段分别有:时间优先、金额优先、比例优先,不要做平台,太难)

    新浪科技李根 整理报道 卫哲现在是御嘉基金的创始合伙人,他另一个更加知名的身份是阿里巴巴(B2B)前CEO,在2006年到2011年的时间里,卫哲见证了阿里巴巴如何利用人才.资本和方向选择一路壮大. ...

随机推荐

  1. python 实现一个计算器功能

    #s = '1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )' #第 ...

  2. 【深入浅出-JVM】(6):栈帧.

    代码 package com.mousycoder.mycode.happy_jvm; /** * @version 1.0 * @author: mousycoder * @date: 2019-0 ...

  3. [Usaco2007 Open]Fliptile 翻格子游戏题解

    问题 B: [Usaco2007 Open]Fliptile 翻格子游戏 时间限制: 5 Sec  内存限制: 128 MB 题目描述 Farmer John knows that an intell ...

  4. 每周一个js重要概念之一 调用堆栈

    js写了也有两年多了,大到复杂的后台系统,小到页面,还有日均300万的网页主站,HTML5的适配页面等等. 框架也杂七杂八接触了不少,从小的jquery.bootstrap.echarts等等,到大一 ...

  5. Java 新特性总结——简单实用

    lambda表达式 简介 lambda 表达式的语法 变量作用域 函数式接口 内置函数式接口 默认方法 Stream(流) 创建 stream Filter(过滤) Sorted(排序) Map(映射 ...

  6. 第二章 Session会话管理

    采用网址重写的缺点: 在有些Web浏览器中,URL限制为2000个字符. 仅当有链接要插入值时,值才能转换成后面的资源.此外,要把值添加到静态页面的链接中,可不是一件容易的事情. 网址重写必须在服务器 ...

  7. 开发板编译./camera显示-/bin/sh: ./camera: not found解决方案

    问题: 开发板根文件系统目录: 运行./camera显示: 问题解决: 1.排除根目录路径问题: 2. 加入静态链接库即无问题,但是编译后的".o"文件大小突增,而且也不可能每次编 ...

  8. CentOS 7离线安装Ansible

    前言 我一直都想成为自动化运维界最亮的仔,奈何自己实力不允许.不过,我一直都在奋斗的路上:这不,最近就在学习自动化运维界的神器--Ansible. 要系统的学习一下Ansible,那就是要先搭建学习环 ...

  9. 「PowerBI」分析服务多维数据结构重回关系数据库的一大绝招

    在过往Excel催化剂定位的轻量级Excel+PowerBIDesktop的解决方案中,已经做过了近乎完美的PowerBIDesktop数据模型数据导出到Excel工作表的应用,这也是个人版数据应用的 ...

  10. restapi(2)- generic restful CRUD:通用的restful风格数据库表维护工具

    研究关于restapi的初衷是想搞一套通用的平台数据表维护http工具.前面谈过身份验证和使用权限.文件的上传下载,这次来到具体的数据库表维护.我们在这篇示范里设计一套通用的对平台每一个数据表的标准维 ...