动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息

本月文章推荐
.如何单步执行外部程序.
.重载CreateParams实现无标题栏的.
.C宏——智者的利刃,愚者的恶梦!.
.C++引用计数的智能指针有效回收方.
.在Delphi中使用电子邮件.
..
.学数学也要学点偷懒的技术.
.在CB中使用ActiveX控件显示Flash.
.定义函数对象.
.TDBGrid控件中对多个记录的处理.
.C++ Builder 初学问与答(三).
.函数调用,__stdcall,__cdecl,__f.
.C++ 语言基础(1).
.Turbo C使用释疑两则.
.c程序设计教程7-16号习题,见笑了.
.WinHelp API命令方法.
.编辑器的改进.
.C/C++中回调函数初探.
.C++类对象的复制-拷贝构造函数.
.256色汉字显示程序.

迷宫问题

发表日期:2008-3-8 |


   大家好,我是一个菜鸟,现在正在学习数据结构,希望大家指点我,我编写了一个走迷宫的程序,希望大家指点。源程序如下:(可以动态实现) #include"time.h"
#include "stdio.h"
#include "graphics.h"
#include "conio.h"
#define null 0 int a[11][15]={ ,       /定义迷宫,这是我们课程设计,所以就用老师给的了/
                ,       /0代表墙,1代表可以通行/  
                ,
                ,
                ,
                ,
                ,
                ,
                ,
                ,
               
               };
strUCt moving       /定义走动方向/
{int x;
 int y;
}move[9]=,,,,,,,,};
typedef struct Position *PPosition;
struct Position    /定义结构体/
{
  int x;
  int y;
  int direction;
  PPosition link;
};
struct LinkPosition    /引入一层封装,其实就是好定义空栈罢了/
{
  PPosition top;
};
typedef struct LinkPosition *PLinkPosition; PLinkPosition createEmptyPosition(void)  /建立空栈/
{
  PLinkPosition plposition;
  plposition=(PLinkPosition)malloc(sizeof(struct LinkPosition));
  plposition->top=null;
  return(plposition);
} void push(PLinkPosition plposition,int x,int y)    /压栈/
{
  PPosition p;
  p=(PPosition)malloc(sizeof(struct Position));
  p->x=x;
  p->y=y;
  p->direction=1;
  p->link=plposition->top;
  plposition->top=p;
} void pop(PLinkPosition plposition)   /弹栈/
{
  PPosition p;
  p=plposition->top;
  plposition->top=plposition->top->link;
  free(p);
} int judge(PLinkPosition plposition)   /判定这个位置是不是栈中已有的/
{int m,n;
 PPosition p;
 m=plposition->top->x;
 n=plposition->top->y;
 p=plposition->top->link;

  while(p!=null)
    {if(p->x!=mp->y!=n)p=p->link;
       else
         {return(0);
          break;
         }
    }
 return(1);
} void maze(void)    /画迷宫/
{
 int i,j;
 setbkcolor(1);
 setcolor(4);
 rectangle(90,50,540,380);
 for(i=80;i<380;i=i+30)
   line(90,i,540,i);
 for(i=120;i<540;i=i+30)
   line(i,50,i,380);
 for(i=0;i<11;i++)
   {for(j=0;j<15;j++)
      if(a[i][j]==1)floodfill(105+j*30,65+i*30,4);
   };
} void erasermouse(PLinkPosition plposition)    /擦除所走过的点/
{  int x1,y1;
 x1=105+30*(plposition->top->y-1);
 y1=65+30*(plposition->top->x-1);
 setcolor(15);
 line(x1-10,y1,x1+10,y1);
 line(x1,y1-10,x1,y1+10);
 setcolor(4);
} void mouse(PLinkPosition plposition)  /画出当前位置/
{
 int x1,y1;
 x1=105+30*(plposition->top->y-1);
 y1=65+30*(plposition->top->x-1);
 line(x1-10,y1,x1+10,y1);
 line(x1,y1-10,x1,y1+10);
} void TIMEDELAY()      /时间延迟函数,这样动态实现时才可以看清/
{
 clock_t time;
 time=5+clock();
 while(time>clock());
}  
main()
{
 PLinkPosition plposition,answer;
 PPosition p;
 int i,j,d,m,n,m1,n1,x1,y1,driver=VGA,mode=VGAHI;
 int c[13][17]=;           
 clock_t times;
 initgraph(&driver,&mode,"");
 for(i=1;i<12;i++)
   for(j=1;j<16;j++)                            
     c[i][j]=a[i-1][j-1];            /c数组就是给迷宫外层加了一层墙/
 plposition=createEmptyPosition();
 plposition->top->link=null;
 push(plposition,1,1);                 /压入初始点/
 maze();
 mouse(plposition);
 TIMEDELAY();
 erasermouse(plposition);
 a:                                             /主结构判定并找出路径/
 for(i=plposition->top->direction;i<=9;i++)
 {
  if(i==9)
    {c[plposition->top->x][plposition->top->y]=0;

     pop(plposition);
     mouse(plposition);
     TIMEDELAY();
     erasermouse(plposition);
     goto a;
    }
  m=plposition->top->x;
  n=plposition->top->y;
  m1=m+move[i].x;
  n1=n+move[i].y;
  push(plposition,m1,n1);
  if(c[m1][n1]==0)
     {pop(plposition);
      plposition->top->direction++;
      continue;
     }
  if(judge(plposition)==0)
     {
      pop(plposition);
      continue;
     }
  mouse(plposition);
  TIMEDELAY();
  erasermouse(plposition);
  if(m1==11&&n1==15)break;
  goto a;
 }
 answer=createEmptyPosition();        /由于栈中元素弹出时是从出口到入口的路径,所以把它们反过来/
 p=plposition->top;
 while(p!=null)
    {m=p->x;
     n=p->y;
     push(answer,m,n);
     p=p->link;
    }
 p=answer->top;
 for(i=1;i<25;i++)
 printf(" ");  while(p->link!=null)
   
 printf("(%d,%d)",p->x,p->y);
getch();
}           作者:曹开锐  哈尔滨工业            QQ号:185917511(希望爱好c语言的朋友加我啊!)
上一篇:面向对象思想的精辟论述 人气:432
下一篇:容易理解魔方阵源程序 人气:530
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-8-20 25175 学生成绩管理查询系统 v2.
2008-8-20 乘风电影程序 v3.7 Acc
2008-8-20 乘风电影程序 v3.7 Sql
2008-8-20 XML文章系统 v1.08 build 080820
2008-8-20 老Y文章管理系统 v2.0 build 080
2008-8-20 OA企业智能办公自动化系统边缘特
2008-8-20 欣颐免费时尚发廊美发厅全站程序
2008-8-20 凌风简单留言板 v1.0
2008-8-20 政府工作日志系统
2008-8-16 iLaba Player(小喇叭播放器) v2.
2008-8-16 DoubleClickFix 鼠标双击修正工具
2008-8-16 CrystalCPUID 4.15.2.451
2008-8-16 VeryCD 电驴(easyMule) 1.0.4 Bu
2008-8-16 uTorrent 1.8 Build 11813 - Sta
2008-8-16 比特精灵(BitSpirit) v3.3.2.287
2008-8-16 StayInTune音叉 v1.0 破解版
2008-8-16 iChing《周易》汉化补丁 v1.0
2008-8-16 Starmap星空图v1.0汉化破解版
  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵