c语言程序设计 求高手啊...

来源:百度知道 编辑:UC知道 时间:2024/05/25 07:34:11
题目:走迷宫问题
要求:迷宫是许多小方格构成的矩形,如图所示,在每个小方格中有的是墙(图中的“1”),有的是咱(图中的“0”)。走迷宫就是从一个小方格沿上、下、左、右4个方向到邻近的方格,当然不能穿墙。设迷宫的入口是左上角(1,1),出口是右下角(8,8)。根据给定的迷宫,找出一条从入口到出口的路径。要求在屏幕上画出如图所示的迷宫,然后动态地画出走迷宫的路线。

#include <stdio.h>
#include <windows.h>
#include <conio.h>

typedef struct point_s {
int x;
int y;
} point_t;

const char maze[8][8] = {
{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, 0, 0, 1, 1},
{0, 1, 0, 0, 1, 0, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 0}
};
const point_t delta[4] = {
{1, 0},
{0, 1},
{-1, 0},
{0, -1}
};
char state[8][8];
point_t path[64];
int path_len;

void gotoxy(int x, int y)
{
COORD c;
c.X = x - 1;
c.Y = y - 1;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}

int search(int x, int y)
{
int i;

if (x < 0 || x >= 8 || y < 0 || y >= 8)
return 0;
if (x == 7 && y ==7) {
p