走迷宫:找出全部路径
/* 走迷宫:找出全部路径*/
/* allroadmaze_20050128.c (recursive)*/
/* 2005-1-28 */
/* 输出结果到文本文件"c:\route.txt"*/
/* 首先输出01表示的迷宫地图*/
/* 然后输出全部可行通路*/
/* 迷宫地图以0表示空格1表示障碍*/
/* 横坐标从左至右为0 1 2 3...*/
/* 纵坐标从上至下为0 1 2 3...*/
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <stdio.h>
#include "conio.h"
#define N 5
#define M 5
#define MAXLEN M*N
int time1=0;
int bg[M][N];
int aa[M][N];
struct pace{
int dir;
int ri;
int rj;
}road[MAXLEN];
FILE *fp;
int length=0;
int dj[]={1,0,-1,0};
int di[]={0,1,0,-1};
void makebg(int,int);
int go(int ,int ,int);
int main(){/* main()开始 */
int step=20;
int len=10;
int size=20;
int x=0,y=0;
int i=0;
makebg(M,N);
if((fp=fopen("c:\route.txt","w"))==NULL){
printf("Cannot open teh file!n");
return(-1);
}
outputmap();
go(0,0,0);
getch();
fclose(fp);
}
/* main()结束 */
/* 随机生成代表迷宫地图的数组 */
void makebg(int a,int b){
int i,j;
int ran;
int direc;
/* 初始化迷宫地图 */
for(i=0;i<a;i++)
for(j=0;j<b;j++)
bg[i][j]=1;
/* 随机生成迷宫通路 */
randomize();
i=j=0;direc=2;
while(1){
bg[i][j]=0;
if(i>=M-1&&j>=N-1)break;
ran=(int)rand()*4;
if(ran<1){
if(direc!=1&&i<a-1){
i++;
direc=3;
}
补充:asp.net教程,C语言
上一个:九宫图算法实现(过程表示法)
下一个:二叉排序树