求个vc++源码 老鼠走迷宫游戏

问题描述:程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。
设计要求:
1) 老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;
2) 迷宫的墙足够结实,老鼠不能穿墙而过;
3) 正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;
4) 添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;
5) 找出走出迷宫的所有路径,以及最短路径;
6)利用序列化功能实现迷宫地图文件的存盘和读出等功能。
请发到我的邮箱:1366502410@qq.com 谢谢!!!

当你进入地图:1表示无法通行,0代表差强人意,自动增加边框(墙),网格的左侧和左上角到右下角的右侧的一个网格入口出口
编译的代码如下:

#包括
#包括
#N 50

数组的迷宫;
诠释行;
整数关口;

int的堆栈[50] ;/ /堆栈

无效CreateMaze存储路径()/ /动态创建的迷宫
{
INT I,J;
printf的(“请输入的迷宫的行数:”); <BR / scanf函数(“%d”,&行);

printf的(“请输入迷宫的列数:”);
scanf的(“%d”,&COL)

(行<= 0 | | COL <= 0)
{
printf的(“请输入行或列的数量是不符合规则的! \ n“);
出口(1);
}

/ /动态地创建一个二维数组的指针的指针
迷宫=(INT *)malloc的((2行)*表示sizeof(int *));
为(i = 0;我行+2,我+ +)
{
迷宫[ ] =(*)malloc的((山坳+2)*表示sizeof(int));
}
/ /添加侧壁
(i = 0;我行+2;我+ +)

{
迷宫[I] [0] = 1;
迷宫[I] [COL +1] = 1;
} <BR / (i = 0; <山坳+2;我+ +)
{
(== 1)
{
迷宫[0] [] = 0;
}
其他迷宫[0] [I] = 1;
(== COL)
{
迷宫[行+1] [COL ] = 0;
}
其他迷宫行+1]在[i] = 1;
}

(i = 1; <=行; + +)
{

为(J = 1; <=山坳; + +)
{
printf(“请输入第%d行%d号:\ n“,I,J);
scanf的(”%d“,&迷宫[I] [J]);
}

} BR />
/ /输入电流和侧壁的迷宫,以验证输入的是正确
printf的(“请输入完毕!电流和侧壁的迷宫:\ n”); />(i = 0;我行+2,我+ +)
{
为(J = 0,J <山坳+2; J + +)
{ />输出(“%d”,迷宫[I] [J]);
}
printf的(“\ n”);
}
}
BR />的无效ShowMaze()/ /输出迷宫
{
INT I,J;
(i = 1; <=行,我+ +)
{ BR />(J = 1; <=山坳; + +)
{
printf的(“%d”,迷宫[I] [J]);
}
printf(“请\ n”);
}
}

/ /释放的迷宫阵列
无效DestroyMaze()
{
>;
为(i = 0;我行+2,我+ +)
(迷宫[I]);
免费(迷宫);
}

/ /的DFS方法来实现回溯找到迷宫路径的解决方案

FindPath()
{
INT I,J,K ,计数,X,Y,方向;

计数= 0;
X = 1,Y = 1;
方向= 0;
J = 0,K表= 0;

为(i = 0; <N; + +)
{
堆栈[I] = 0;
}
i = 0;
(1)
{
计数= 0 ;/ /计算,以确定是否有很长的路要走
{
(X =
迷宫= 1 && Y == 1)[X] [Y] = 2;
(迷宫[X] [Y +1] == 0)/ /东
{
计数+ +;
迷宫[X] [Y +1] = 2;
Y = Y +1;
栈[我] = -1;
i + +;
(X =行&& Y == COL)
返回1;
}
其他(迷宫[+1] [Y] == 0)/ /南
{
(迷宫[+1] [Y] == 0)
计数+ +;
{
迷宫[X + 1] [Y] = 2;
X = X +1;
栈[I] = -2;
我+ +;
(X =行&&? == COL)返回1

}
}
其他(迷宫[X] [Y-1] == 0)/ /西
{ BR />数+ +;
(迷宫[X] [Y-1] == 0)
{
迷宫[X] [Y-1] = 2;
> Y = Y-1;
栈[I] = -3;
+ +;
(X =行&& Y == COL)
返回1;
}
}
其他(迷宫[-1] [Y] == 0)/ /北
{
数+ +;
如果(迷宫〔x-1] [Y] == 0)
{
迷宫〔x-1] [] = 2;
= x-1的;
栈[我] = -4;
+ +;
(X =行&& Y == COL)返回1

}
} BR />}
(数== 0)
{
(<0)
返回0;
方向=堆栈[ - ]; BR />开关(方向)
{
情况下,-1:Y = Y-1;突破;
情况下,-2:X = X-1;突破;
情况下 - 3:Y = Y +1;突破;
情况下-4:X = X +1;突破;
默认值:打破;
}
}
} BR />}

廉政的main()
{
CreateMaze();
(FindPath())

{ BR /> printf的(“已找到了一条路径,如下所示:\ n”);
ShowMaze();
}
其他
{
printf的(“不在正确的道路上走出迷宫!\ n“);

}}
DestroyMaze();
温馨提示:内容为网友见解,仅供参考
无其他回答

求助,vc++程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的...
求助,vc++程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。 老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;迷宫的墙足够结实,老鼠不能穿墙而过;正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;添加编辑迷宫功能,可... 老鼠形象可辨认,可用键盘操纵老鼠上下左右移动; ...

急求!老鼠走迷宫.exe和代码
参见:http:\/\/zhidao.baidu.com\/question\/456887424331229285

走迷宫游戏算法
查一下A*算法,应该有很多详尽的文章

求一个 windows程序设计实例 用C写的API,要在VC++6.0下实现,只是一个小...
PSTR szCmdLine, \/\/指向一个0结尾的字符串 int iCmdShow) \/\/窗口开始的大小 { static TCHAR szAppName[] = TEXT ("HelloWin") ; \/\/将"HelloWin"赋给szAppName[]HWND hwnd ; \/\/定义一个窗口句柄,用来标识窗口 MSG msg ; \/\/定义一个消息结构体,该结构体包含消息的几个数据 WNDCLASS wndclas...

相似回答