先给不同状态的水管编给号吧
跟走迷宫一样的,深搜,每个dfs里遍历水管的状态,如果当前状态和水管指向的下一个状态能连通就深搜过去直到走到终点为止
上代码吧,这个代码是加强版,支持了更多的水管的编号,以及出口,入口和出发点是由用户输入的,以后可以用python做7k7k的水管工游戏辅助哈哈
游戏地址
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define Max 10
typedef struct suiguan {
int type;
int lt[4 + 1];
}sNode;
typedef struct {
int x;
int y;
}mNode;
mNode stack[Max*2];
int tail=0;
int m, n;
sNode map[Max + 2][Max + 2];
int book[Max + 2][Max + 2];
int ansFlag = 0;
int _x[3 + 1];
int _y[3 + 1];
int _type[3 + 1];
int move[4 + 1][2] = {
{
0, 0 },
{
0, -1 },
{
-1, 0 },
{
0, 1 },
{
1, 0},
};
void display() {
for (int i = 0; i <= m+1; i++){
for (int j = 0; j <= n+1; j++){
printf("%d\t",map[i][j].type);
}
printf("\n");
}
}
sNode creat(int type) {
sNode* shuiguan = (sNode*)malloc(sizeof(sNode)*(10+1));
for (int i = 0; i <= 10; i++){
memset(shuiguan[i].lt, 0, sizeof(int) * 5);
shuiguan[i].type = i;
}
shuiguan[