电脑鼠走迷宫问题

请问加什么代码才能计算每次移动的步速?就类似能在Dos窗口显示已用了多少步速移动。我是用DevC++这个软件编写的。本人是C语言初学者,恳求解答,谢谢各位。#includ... 请问加什么代码才能计算每次移动的步速?就类似能在Dos窗口显示已用了多少步速移动。
我是用Dev C++这个软件编写的。本人是C语言初学者,恳求解答,谢谢各位。

#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#define XMAX 10
#define YMAX 10

char maze[XMAX][YMAX] = {
"XXXXXXXXXX",
"X X X X X",
"XX X X X",
"XX XXX X",
"X X XXX",
"XX X X XEX",
"X X X X",
"XX XXX X X",
"XS X X",
"XXXXXXXXXX"
};
char mazes[XMAX][YMAX] = {
"XXXXXXXXXX",
"X X X X X",
"XX X X X",
"XX XXX X",
"X X XXX",
"XX X X XEX",
"X X X X",
"XX XXX X X",
"XS X X",
"XXXXXXXXXX"
};

int goAhead(void);
int goBack(void);
void printMaze(void);
void printMazes(void);
int mazeWalk(int, int);
int mazeBack(int x, int y);

int main(void){
goAhead();
goBack();
getchar();
return(0);
}

int goAhead(void){
int x, y, sum;
char abc;
for (x=0; x<XMAX; x++)
for (y=0; y<YMAX; y++)
if (maze[x][y]=='S')
if(!mazeWalk(x,y))
puts("No route to [E]xit from [S]tart.");
printMaze();
printf("\n");

printf("Press Enter to continue for E to S");
scanf("%c", &abc);
}

int goBack(void){
int x, y;
for (x=0; x<XMAX; x++)
for (y=0; y<YMAX; y++)
if (mazes[x][y]=='E')
if(!mazeBack(x,y))
puts("No route to [S]tart from [E]xit.");
printMazes();
}

void printMaze(void){
int x, y;
for (x=0; x<XMAX; x++){
for (y=0; y<YMAX; y++)putchar(maze[x][y]);
putchar('\n');
}
}
void printMazes(void){
int x, y;
for (x=0; x<XMAX; x++){
for (y=0; y<YMAX; y++)putchar(mazes[x][y]);
putchar('\n');
}
}

int mazeWalk(int x, int y){

if (maze[x][y]=='E')return(1);

if ((maze[x][y+1]==' ')||(maze[x][y+1]=='E')){
maze[x][y]='>';
printMaze();
sleep(1);

printf("\n");
if(mazeWalk(x,y+1))
return(1);
}

if ((maze[x-1][y]==' ')||(maze[x-1][y]=='E')){
maze[x][y]='^';

if(mazeWalk(x-1,y))return(1);
}
if ((maze[x][y-1]==' ')||(maze[x][y-1]=='E')){
maze[x][y]='<';

if(mazeWalk(x,y-1))return(1);
}
if ((maze[x+1][y]==' ')||(maze[x+1][y]=='E')){
maze[x][y]='V';

if(mazeWalk(x+1,y))return(1);
}
maze[x][y]=' ';
printMaze();
printf("\n");
sleep(1);

return(0);
}

int mazeBack(int x, int y){

if (mazes[x][y]=='S')return(1);

if ((mazes[x][y+1]==' ')||(mazes[x][y+1]=='S')){
mazes[x][y]='>';
printMazes();
sleep(1);
printf("\n");

if(mazeBack(x,y+1))
return(1);
}

if ((mazes[x-1][y]==' ')||(mazes[x-1][y]=='S')){
mazes[x][y]='^';

if(mazeBack(x-1,y))return(1);
}
if ((mazes[x][y-1]==' ')||(mazes[x][y-1]=='S')){
mazes[x][y]='<';

if(mazeBack(x,y-1))return(1);
}
if ((mazes[x+1][y]==' ')||(mazes[x+1][y]=='S')){
mazes[x][y]='V';

if(mazeBack(x+1,y))return(1);
}
mazes[x][y]=' ';
printMazes();
printf("\n");
sleep(1);
return(0);
}
/* maze.c : end of code */
展开
 我来答
剑臣ABB
2014-01-14 · 超过10用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:16.3万
展开全部
加一个全局变量,在递归的时候进行计数,回溯的的时候记得回减....然后在输出路线的时候将此变量输出。不知道这样可不可以满足你的要求...
追问
谢谢您的解答,能不能写个能够加进我程式的代码,我就是卡在这里了,谢谢 。
追答
嗯,你把代码打包,发我邮箱,szn256@gmail.com
匿名用户
2014-01-14
展开全部
希望你能早日解决问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式