回 帖 发 新 帖 刷新版面

主题:[讨论]自己做的迷宫程序(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个回复)

31 楼

我也有一个自己做的游戏  就是不知道怎么把图片插进去
有没有人 会啊  教教我

32 楼

你做的这个程序真的是很不错的啊!

33 楼

我是,新,新,新,新新来的啊!

34 楼

认真拜读中!!!

35 楼

楼主啊,我把你的源程序拷进了ultra-edit,存为.C文件,然后再用TC载入,可是报错了,说
 Compiling D:\TC\PUZZLE.C:
 Error D:\TC\PUZZLE.C 1: Unable to open include file 'GRAPHICS.H'
 Error D:\TC\PUZZLE.C 2: Unable to open include file 'DOS.H'
 Error D:\TC\PUZZLE.C 3: Unable to open include file 'STDLIB.H'
 Error D:\TC\PUZZLE.C 4: Unable to open include file 'PROCESS.H'
 Error D:\TC\PUZZLE.C 114: Undefined symbol 'SOLID_FILL' in function mapbar
 Error D:\TC\PUZZLE.C 114: Undefined symbol 'YELLOW' in function mapbar
 Error D:\TC\PUZZLE.C 141: Undefined symbol 'SOLID_FILL' in function mapture

这是为什么啊?

36 楼

谢谢楼主,可是我把你的程序粘贴到ultra-edit,存为.c文件,再用TC载入,按F9运行时,出现了如下错误,请问这是怎么回事啊,我刚学C语言,还不太懂。呵呵。

Compiling D:\TC\PUZZLE.C:

Error D:\TC\PUZZLE.C 1: Unable to open include file 'GRAPHICS.H'
Error D:\TC\PUZZLE.C 2: Unable to open include file 'DOS.H'
Error D:\TC\PUZZLE.C 3: Unable to open include file 'STDLIB.H'
Error D:\TC\PUZZLE.C 4: Unable to open include file 'PROCESS.H'
Error D:\TC\PUZZLE.C 114: Undefined symbol 'SOLID_FILL' in function mapbar
Error D:\TC\PUZZLE.C 114: Undefined symbol 'YELLOW' in function mapbar
Error D:\TC\PUZZLE.C 141: Undefined symbol 'SOLID_FILL' in function mapture
Error D:\TC\PUZZLE.C 141: Undefined symbol 'BLUE' in function mapture
Error D:\TC\PUZZLE.C 145: Undefined symbol 'RED' in function mapture
Error D:\TC\PUZZLE.C 149: Undefined symbol 'GREEN' in function mapture

37 楼

楼主,问题我已解决了,原来是TC的目录设置有问题。每次都要重新设置一次。呵呵。我的屏幕上出现了那些同心圆了。呵呵

38 楼

能否加上注释呢 看不懂啊 谢谢

39 楼

不错顶一下,对学习C语言有很大帮助,多谢!

40 楼

学C群:8456132

我来回复

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