通过一个解救小哈的游戏,来学习深度优化搜索算法。
规则如下:
小哈被困在终点,小哼从(1,1)出发去找小哈,每一步只能选择往上下左右走一格,不能走到锁所在地格子上,也不能走出图片限定的区域,求出小哼走到终点走过的最短路程。
实现程序如下所示。规定,小哼移动的优先级为:右>下>左>上,让小哼在每一格都进行上下左右的尝试。
#include<stdio.h>
#include<iostream>
using namespace std;
int mi = 999, p, q, n, m;
int a[51][51], book[51][51];
void dfs(int x,int y,int step)
{
// 定义方向数组
int next[4][2] = { {0,1},// 向右走
{1,0},// 向下走
{0,-1},// 向左走
{-1,0} // 向上走
};
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 2; j++) {
cout << "next[" << i << "][" << j << "] = " << next[i][j] << endl;
}
}
c