国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

大家進(jìn)來(lái)瞧瞧我編的小迷宮,望大蝦不吝賜教啊

2019-11-17 05:46:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
# define m2 50
# define n2 50
# define maxlen 200                 /*棧長(zhǎng)度*/
# define true 1
# define false 0
# define null 0
# include "stdio.h"
# include "graphics.h"
# include "stdlib.h"
# include "dos.h"
int m,n;typedef strUCt                   
{ int x,y,dir;}elemtype;
typedef struct
{ elemtype stack[maxlen];         
  int top;
}sqs;
typedef struct                    { int dx,dy;}moved;
void inimaze (int maze[][n2])    
{ int i,j;
  for(i=1;i<=m;i++)
    {
      for(j=1;j<=n;j++)maze[i][j]=rand()/16383;
    }
for (i=0,j=0;i<=m+1;i++)
    maze[i][j]=1;
for (i=0,j=n+1;i<=m+1;i++)
    maze[i][j]=1;
for (i=0,j=0;j<=n+1;j++)
    maze[i][j]=1;
for (i=m+1,j=0;j<=n+1;j++)
    maze[i][j]=1;
}
void picture (int maze[][n2])                   
{
  int i,j;
  setbkcolor(BLACK);
  for(i=0;i<m+2;i++)
  { for (j=0;j<n+2;j++)
     { if(maze[i][j]==1)
  {  setfillstyle(1,LIGHTBLUE);
     bar (70+j*20,20+i*20,88+j*20,38+i*20);
  }
 else
  {  setfillstyle(1,WHITE);
    bar (70+j*20,20+i*20,88+j*20,38+i*20);
         }
     }
  }
 outtextxy(90,460,"PRess any key to start");
 getch();
}void inimove(moved move[])      { move[0].dx=0;move[0].dy=0;
  move[1].dx=0;move[1].dy=1;
  move[2].dx=1;move[2].dy=1;
  move[3].dx=1;move[3].dy=0;
  move[4].dx=1;move[4].dy=-1;
  move[5].dx=0;move[5].dy=-1;
  move[6].dx=-1;move[6].dy=-1;
  move[7].dx=-1;move[7].dy=0;
  move[8].dx=-1;move[8].dy=1;
}
void inistack(sqs *s)                 { s->top=-1;}int push(sqs *s,elemtype t)           {  int i,j;
   if (s->top==maxlen-1)return(false);
   else
   {
       i=t.x;j=t.y;
       setfillstyle(1,GREEN);
       bar (70+j*20,20+i*20,88+j*20,38+i*20);
       s->stack[++s->top]=t;
       return(true);
   }
}
elemtype pop(sqs *s)            
{ elemtype elem;
    if (s->top<0)
     {
       elem.x=null;
       elem.y=null;
       elem.dir=null;
       return(elem);
     }
   else
     { int i,j;
       i=s->stack[s->top].x;j=s->stack[s->top].y;
       setfillstyle(1,RED);
       bar (70+j*20,20+i*20,88+j*20,38+i*20);
       s->top--;
       return(s->stack[s->top+1]);
     }
}
void path(int maze[][n2],moved move[],sqs *s)    {  int i,j,dir,x,y,f;
   elemtype elem;
   i=1;j=1;dir=0;
   maze[1][1]=0;                               do
    {  x=i+move[dir].dx;
       y=j+move[dir].dy;
       if (maze[x][y]==0)
            { elem.x=x;elem.y=y;elem.dir=dir;
       f=push(s,elem);
       delay(15000);
              if (f==false) printf("棧長(zhǎng)度太短");
       i=x;j=y;dir=0;maze[x][y]=-1;
     }
       else
     {   if (dir<9) dir++;     else
   {
      elem=pop(s);
      if (elem.x!=null)
      {
       i=elem.x;
       j=elem.y;
       dir=elem.dir+1;
       }
                 }
}}while(!((s->top==-1)&&(dir>=7)(x==m)&&(y==n)&&(maze[x][y]==-1)));   if(s->top==-1)
  printf("       !!!  no pass   !!!    ");
  else { elem.x=x;elem.y=y;elem.dir=dir;
        f=push(s,elem);
 setfillstyle(1,GREEN);
 bar (70+j*20,20+i*20,88+j*20,38+i*20);
 getch();
 }
}
void start()
{ int h;
  for(h=5;h<=18;h++)
   {
    setfillstyle(1,h);
    bar (80,80,520,180);
    setcolor(h+2);
    settextstyle(TRipLEX_FONT,HORIZ_DIR,4);
    outtextxy(150,90,"!WELCOME TO MAZE!");
    delay(15000);
    }
    for(h=0;h<13;h++)printf(" ");
    settextstyle(SMALL_FONT,HORIZ_DIR,6);
    setcolor(LIGHTCYAN);
    printf(" ");printf("     ");
    outtextxy(90,200,"input the length of the maze(0-30):");
    scanf("%d",&m);
    for(h=0;h<2;h++)printf(" ");
    printf(" ");printf("     ");
    outtextxy(90,250,"input the wideth of the maze(0-30):");
    scanf("%d",&n);
}
void main()
{
sqs *s;
int maze[m2][n2];
moved move[8];
initgraph(VGA,VGAHI,"");
start();
system("cls");
inimaze(maze);
picture(maze);
s=(sqs*)malloc(sizeof(sqs));
inistack(s);
inimove(move);
path(maze,move,s);
getch();
}


上一篇:ARP & ICMP

下一篇:遞歸找迷宮

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永康市| 保山市| 石门县| 米泉市| 镇康县| 喀喇| 资兴市| 什邡市| 宝鸡市| 文安县| 临洮县| 西林县| 乌拉特前旗| 泸定县| 绵阳市| 图木舒克市| 陈巴尔虎旗| 沂水县| 桓仁| 四子王旗| 长宁县| 吐鲁番市| 衢州市| 瓦房店市| 灯塔市| 利辛县| 南昌市| 濮阳市| 永州市| 娱乐| 皋兰县| 达日县| 松滋市| 昭平县| 巍山| 平湖市| 西峡县| 东明县| 彩票| 车险| 绥化市|