用c语言编写一个迷宫,C语言实现迷宫

  用c语言编写一个迷宫,C语言实现迷宫

  新建stack.h

  #include Data.h

  #ifndef _STACK_H

  #定义_堆栈_H

  #定义初始大小10

  #定义初始化增量10

  typedef struct _STACK{

  ElemType * Base

  ElemType * Top

  (同Internationalorganizations)国际组织大小;

  }栈;

  STACK * init STACK();

  void销毁堆栈(STACK * s);

  //压栈

  int Push(STACK* s,elem type * e);

  //弹栈

  int Pop(STACK* s,elem type * e);

  //站是否为空

  int IsEmpty(STACK * s);

  # endif新建stack.c

  #include stack.h

  #包含标准库

  STACK* InitStack(){

  STACK * s=(STACK *)malloc(sizeof(STACK));

  if (s==NULL){

  退出(0);

  }

  s-Base=(elem type *)malloc(INIT _ SIZE * sizeof(elem type));

  if (s- Base==NULL){

  免费(s基);

  免费;

  退出(0);

  }

  s-Top=s-Base;

  s-SIZE=INIT _ SIZE;

  返回s;

  }

  无效销毁堆栈(堆栈)

  免费(s基);

  免费;

  }

  int Push(STACK* s,ElemType *e){

  if (s==NULL e==NULL){

  返回0;

  }

  if (s- Top - s- Base=s- size){

  s-Base=(elem type *)realloc(s-Base,(s-size INIT _ INCREM)* sizeof(elem type));

  if (s- Base==NULL){

  返回0;

  }

  s-Top=s-Base s-size;

  s-size=s-size INIT _ INCREM;

  }

  * s-Top=* e;

  s-Top;

  返回1;

  }

  int Pop(STACK* s,ElemType* e){

  if (s==NULL e==NULL){

  返回0;

  }

  if (s- Base==s- Top){

  返回0;

  }

  s-Top-;

  * e=* s-Top;

  返回1;

  }

  int IsEmpty(STACK* s){

  返回s- Base==s- Top?1 : 0;

  }新建Data.h

  #ifndef _DATA_H

  #定义数据H

  数据类型说明结构

  {

  int y;

  int x;

  }位置

  数据类型说明结构{

  (同Internationalorganizations)国际组织顺序;

  刷卡机座位;

  int di

  }元素类型

  #endif新建主网站

  #include Data.h

  #include stack.h

  #包含标准视频

  #包含conio.h

  #包含标准库

  int item[10][10]={

  {1,1,1,1,1,1,1,1,1,1},

  {1,0,0,1,0,0,0,1,0,1},

  {1,0,0,1,0,0,0,1,0,1},

  {1,0,0,0,0,1,1,0,0,1},

  {1,0,1,1,1,0,0,0,0,1},

  {1,0,0,0,1,0,0,0,0,1},

  {1,0,1,0,0,0,1,0,0,1},

  {1,0,1,1,1,0,1,1,0,1},

  {1,1,0,0,0,0,0,0,0,1},

  {1,1,1,1,1,1,1,1,1,1}

  };

  静态常量位置inPos={1,1},outPos={8,8 };

  int IsPass(POS CurP){

  return item[CurP.y][CurP.x]==0?1:0;

  }

  POS NextPos(POS CurP,int di){

  POS p=CurP

  开关(di){

  案例0:

  p。x-;//向左

  打破;

  案例1:

  p.y//向下

  打破;

  案例二:

  p.x//向右

  打破;

  案例三:

  p。y-;//向上

  打破;

  }

  返回p;

  }

  作废打印项目(POS CurP){

  int i,j;

  系统(“cls”);

  for(I=0;i 10i ){

  for(j=0;j 10j ){

  if(i==CurP.y j==CurP.x){

  printf(“@”);

  继续;

  }

  if(item[i][j]==1){

  printf( * );

  }否则{

  printf(" ");

  }

  }

  printf( \ n );

  }

  }

  void main(){

  STACK * s=init STACK();

  elem型;

  int setp=1;

  POS CurPos=inPos

  打印项目(inPos);

  做{

  if(IsPass(CurPos)){

  e.ord=setp

  e。di=0;

  e.seat=CurPos

  推(s,e);//只有能通过才压栈

  项目[curpos。y][curpos。x]=2;

  if(curpos。y==outpos。y curpos。x==outpos。x){

  打印项目(CurPos);

  printf(好!\ n’);

  打破;

  }

  打印项目(CurPos);

  CurPos=NextPos(e.seat,0);

  设定步骤

  getch();

  }否则{

  Pop(s,e);//如果不能通过就弹栈

  if(e.di==4!IsEmpty)){

  项目[curpos。y][curpos。x]=8;

  Pop(s,e);

  }

  if(e.di 3){

  e.di

  推(s,e);

  CurPos=NextPos(e.seat,e . di);

  }

  }

  }while(!IsEmpty(s));

  }

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: