回 帖 发 新 帖 刷新版面

主题:[讨论]自己做的迷宫程序(C语言),有图形动画效果

几点说明:
1.本程序是动态的,运行后自动寻找迷宫出路
2.有什么不懂的可以在本贴留言.
3.本程序对C语言刚学完的有很大的意义.
4.四周是墙,坐标(1,1)是入口,右下脚是出口
5.若有不懂,联系QQ:274145322.
声明:本程序用VC调试是无法通过的需要修改
     本程序调试工具是TC.....................
     有些同志们抱怨没有注释,有注释就学不到东西了,查阅资料是非常重要的能力.
6.今日特加上注释以供大家学习。
#include "graphics.h"
#include "dos.h"
#include "stdlib.h"
#include "process.h"

#define MAX_COL 14/*定义迷宫大小*/
#define MAX_ROW 14

typedef struct
{ int vert;
  int horiz;
}offsets;


mapture(int i,int j,int k);/*标记迷宫,(i,j)标记为k模式*/
initmaze();/*初始化迷宫数组*/
findmaze(int i,int j);/*找到了(i,j)可走,标记*/
mapmaze();/*画出原始迷宫*/
int findpath(int row,int col);/*递归函数,找出迷宫路径*/
mapbar();/*画出方格*/
initgrap();/*初始化VGA*/
print();/*迷宫走完后,输出是否成功 */


int startx=50,starty=50;/*画图的屏幕坐标*/
int maze[MAX_ROW][MAX_COL];
offsets move[8]={{0,1},{1,1},{-1,1},{1,0},{-1,0},{0,-1},{1,-1},{-1,-1}}; /*8个方向寻找*/


initmaze()/*初始化迷宫数组 */
{ int i,j;

  for(i=0;i<MAX_ROW;i++)/*迷宫四周设置为1 代表墙*/
    { maze[i][0]=1;
      maze[i][MAX_COL-1]=1;
     }
  for(i=0;i<MAX_COL;i++)
    {  maze[0][i]=1;
       maze[MAX_ROW-1][i]=1;
     }
     randomize();
  for(i=1;i<MAX_ROW-1;i++)/*迷宫图形随机产生 1表示不通 0表示可行*/
     for(j=1;j<MAX_COL-1;j++)
       {
     maze[i][j]=random(2);
       }

}




findmaze(int i,int j)/*找到 (i,j)可走*/
{
   mapture(j,i,2);/*在图形上标记*/
            sleep(1);



}

returnmaze(int i,int j)/*找到(i,j)可走 ,但下一步无路走则标记*/
{

   mapture(j,i,3);/*在图形上标记*/
   sleep(1);
}
接后面

回复列表 (共53个回复)

11 楼

同意10楼的看法,我是怎么也看不懂啊,我也是学过C的呀,

12 楼

先顶以下了
希望大家有什么好的东西一起交流一下哦
我也觉的
程序应该给点注释 增强可读性

13 楼

我怎么复制的运行不起来  头文件有问题?
fatal error C1083: Cannot open include file: 'graphics.h': No such file or directory

14 楼

是啊,我在VC编译,提示说没有graphics.h

15 楼

不就是自己自动寻找路口嘛?  到底是什么意思嘛?
  难道你要开发外挂自动走路插件?

16 楼

进入TC 的DOS截面
输入BJIOBJ CGA VGA

17 楼

楼主 请问在VC6.0下怎么用C写这样的图形呢?我不会写头文件 有没有现成写好的啊?哈哈 那就让我省了不少时间了!!~

18 楼

[em3][em2][em4][em6]虽然是做得不错,不过里面调用的很多函数都 没知道
能否再在上面多加点注释啊?

19 楼

我运行通过但是只提示 BGI ERROR:GRAHICS NOT INITIALIZED(USE INITGRAPH)

20 楼

#include "graphics.h"
在那有这个头文件呢

我来回复

您尚未登录,请登录后再回复。点此登录或注册