亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 迷宮程序3.txt

?? 我的C語言作業
?? TXT
字號:
#include"time.h"
#include "stdio.h"
#include "graphics.h"
#include "conio.h"
#include "stdlib.h"
#define MaxX 50   /*迷宮的最大行數*/
#define MaxY 50   /*迷宮的最大列數*/
typedef struct node
{
  int x;
  int y;
}queue;   /*定義隊列,用于存放迷宮的路徑*/
typedef struct
{
  queue data[255];
  int rear,front;
}Queue;
typedef Queue *Node;
Node result;
int X,Y;  /*迷宮的大小*/
int Map[MaxX][MaxY];  /*迷宮結構*/

void init_queue() /*隊列初始化*/
{
  int i;
  result=(Node)malloc(sizeof(Queue));
  for(i=0;i<255;i++)
    result->data[i].x=result->data[i].y=0;
  result->front=result->rear=0;
}
void en_queue(int x,int y)  /*入隊*/
{
  result->data[result->rear].x=x;
  result->data[result->rear].y=y;
  result->rear++;
}
queue del()  /*刪除剛入隊元素*/
{
  queue p;
  result->rear--;
  p=result->data[result->rear];
  return p;
}
int empty_queue()  /*判斷隊列是否為空*/
{
  return(result->front==result->rear);
}
void Setmap()         /*手工輸入迷宮函數*/
{
  int i,j,t;
  printf("\n依次輸入迷宮的結構(1為墻,0為通路):\n");
  for(i=0;i<=X+1;i++)
    {
      for(j=0;j<=Y+1;j++)
{
   if(i==0 || j==0 || i==X+1 || j==Y+1)    /*在迷宮周圍包上一圈1,防止搜索通路時越界*/
     {
       Map[i][j]=1;
       continue;
     }
   else
     {
       scanf("%d",&t);             /*手工輸入迷宮的墻與通路*/
       Map[i][j] = (t!=0) ? 1 : 0;
     }
}
   }
}
void AutoSetMap()         /*電腦繪制迷宮*/
{
  int a=20,b=10,i,j;      /*a、b用于產生不同的隨機數種子*/
  for(i=0;i<=X+1;i++)
    {
      for(j=0;j<=Y+1;j++)
        {
          if(i==0 || j==0 || i==X+1|| j==Y+1)
            {
              Map[i][j]=1;
              continue;
            }
   srand((rand()*(a++)+(b++))%65536); /*srand和rand函數配合使用,產生隨機數的起始發生數據*/
   Map[i][j]=rand()%2;     /*產生的隨機數mod2所得的余數為1或者0,作為迷宮的墻或通路*/
        }
    }
}
void mouse(int x,int y)  /*畫出當前位置*/
{
int x1,y1;
x1=105+30*(y-1);
y1=65+30*(x-1);
line(x1-10,y1,x1+10,y1);    /*在通路的地方畫線*/
line(x1,y1-10,x1,y1+10);
}
void erasermouse(int x,int y)    /*擦除所走過的點*/
{
int x1,y1;
x1=105+30*(y-1);
y1=65+30*(x-1);
setcolor(15);  /*15表示白色*/
line(x1-10,y1,x1+10,y1);   /*將剛剛畫過線的地方用白色再畫一次,也就將剛才畫的線覆蓋掉*/
line(x1,y1-10,x1,y1+10);
setcolor(4);  /*紅色,再將當前顏色變成紅色*/
}
void TIMEDELAY()      /*時間延遲函數,這樣動態實現時才可以看清 */
{
  double i;
  for(i=0;i<9e+6;i++);   /*執行一個空循環,達到延時的效果*/
}
void SearchWay()            /*查找最短路徑*/
{
  queue p;
  int kill[MaxX][MaxY]={0};  /*判斷是否是回路*/
  int i=1,j=1,n;        /*i、j用于記錄所走的下標,n用來計算搜索的方向個數(8個)*/
  int po;          /*檢查方向的計數器*/
  if(Map[X][Y]&&Map[i][j])
    return;      /*如果入口或出口不通直接返回*/
  do
    {
       if(!Map[i][j]&&!kill[i][j]) /*如果是通路且未訪問過*/
         {
            en_queue(i,j);    /*將要可通行的坐標入隊*/
     kill[i][j]=1;     /*將判斷標志改為1*/
     mouse(i,j); /*畫當前位置*/
            TIMEDELAY();   /*延時*/
     erasermouse(i,j);    /*擦除所走過的點*/
     if(!Map[i][j])      /*是通路的情況*/
              {
                i = i+1;     /*下一個要檢查的坐標 左斜上方*/
                j = j+1;
              }
            po=0;      /*計數器清零*/
        }
      else
        {
    i=result->data[result->rear-1].x;    /*回溯*/
           j=result->data[result->rear-1].y;
           for(n=0;n<7;n++)  /*在上面if語句中已經判斷了一個方向,所以只要再搜索其余的7個方向即可*/
             {
               po++;
               if(po==1)
                 {
                   j++;         /*右*/
                   if(!Map[i][j]&&!kill[i][j])
                     break;
                   else
                     j--;
                 }
               if(po==2)
                 {
                   i++;      /*下*/
                   if(!Map[i][j]&&!kill[i][j])
                     break;
                   else
                     i--;
                  }
                if(po==3)
                  {
                    i--;j++;    /*右斜上*/
                    if(!Map[i][j]&&!kill[i][j])
                      break;
                    else
                      {
                        i++;
                        j--;
                      }
                  }
                 if(po==4)
                   {
                     i++;j--;    /*左斜下*/
                     if(!Map[i][j]&&!kill[i][j])
                       break;
                     else
                       {
                         i--;
                         j++;
                       }
                   }
                 if(po==5)
                   {
                     i--;    /*上*/
                     if(!Map[i][j]&&!kill[i][j])
                       break;
                     else
                       i++;
                   }
                  if(po==6)
                    {
                      j--;          /*左*/
                      if(!Map[i][j]&&!kill[i][j])
                        break;
                      else
                        j++;
                    }
                  if(po==7)
                    {
                      i--;j--;    /*左斜上*/
                      if(!Map[i][j]&&!kill[i][j])
                        break;
                      else
                        {
                          i++;
                          j++;
                        }
                    }
                 }
           if(n==7&&kill[i][j])  /*下一步沒有通路*/
             {
               p=del();  /*將剛入隊的下標刪除*/
               i=p.x;    /*回溯*/
               j=p.y;
               po=0;  /*清零計數器*/
      }
    if(empty_queue())  /*如果隊列為空,則返回*/
      return;
        }
    }while(i!=X+1||j!=Y+1);  /*還沒到達迷宮邊緣繼續循環*/
}
void maze()    /*畫迷宮*/
{
  int i,j;
  setbkcolor(5);  /*將背景顏色設置為紅紫色*/
  setcolor(14);   /*將當前顏色設置成黃色*/
  rectangle(90,50,90+Y*30,50+X*30);  /*畫起點是(90,50)終點是(90+Y*30,50+X*30)的框*/
  for(i=80;i<50+X*30;i=i+30)    /*畫迷宮的行 */
    line(90,i,90+Y*30,i);
  for(i=120;i<90+Y*30;i=i+30)   /*畫迷宮的列*/
    line(i,50,i,50+X*30);
  for(i=1;i<=X;i++)
   {
     for(j=1;j<=Y;j++)
       if(Map[i][j]==0)
  floodfill(105+(j-1)*30,65+(i-1)*30,14); /*通路的地方變成白色*/
   }
}
void print_path()   /*打印迷宮路徑*/
{
  if(result->rear==result->front)
      printf("\n\t\t此迷宮沒有出路");
  else
    {
      printf("\n入口->");
      while(result->front!=result->rear)
        {
   printf("(%d,%d)->",result->data[result->front].x,result->data[result->front].y);
          result->front++;
        }
      printf("出口");
    }
}
int menu_select()  /*菜單*/
{
  int sn;
  clrscr();
  printf("\n\t\t迷宮問題\n");
  printf("\n\t\t*********************");
  printf("\n\t\t1.手動繪制迷宮");
  printf("\n\t\t2.電腦繪制迷宮");
  printf("\n\t\t3.退出");
  printf("\n\t\t*********************");
  printf("\n\t\t請選擇:");
  scanf("%d",&sn);
  return sn;
}
main()
{
  char k='y',ch;
  int driver=VGA,mode=VGAHI,i;
  while(k=='y')
    {
      switch(menu_select())
        {
           case 1:
                  clrscr();
                  printf("\n請輸入迷宮大小X(行1<X<12)Y(列1<Y<12)!\n");
                  scanf("%d%d",&X,&Y);
                  Setmap();   /*手動創建迷宮*/
                  clrscr();  /*清屏*/
                  initgraph(&driver,&mode,"");  /*切換到圖形模式*/
                  maze();    /*畫迷宮*/
                  SearchWay();   /*找路徑*/
                  closegraph();  /*切換到文本模式*/
                  print_path();   /*打印路徑*/
                  printf("\n\t\t請按回車返回菜單!\n");
                  fflush(stdin);
                  scanf("%c",&ch);
                  if(ch=='\n')
                    break;
           case 2:
                  clrscr();
                  printf("\n請輸入迷宮大小(最好不要超過12行12列)X(行1<X<12),Y(列1<Y<12)!\n");
                  scanf("%d%d",&X,&Y);
                  AutoSetMap();  /*電腦創建迷宮*/
                  clrscr();  /*清屏*/
                  initgraph(&driver,&mode,"");  /*切換到圖形模式*/
                  maze();  /*畫迷宮*/
                  SearchWay();  /*找路徑*/
                  closegraph();   /*切換到文本模式*/
                  print_path();  /*打印路徑*/
                  printf("\n\t\t請按回車返回菜單!\n");
                  fflush(stdin);
                  scanf("%c",&ch);
                  if(ch=='\n')
                    break;
           case 3:
                  printf("\n\t\t歡迎下次使用,再見!");
                  k='n';
                  fflush(stdin);
                  scanf("%c",&ch);
                  if(ch=='\n')
                    break;
        }
    }
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产情人综合久久777777| 91色在线porny| 日韩欧美在线观看一区二区三区| 亚洲一区二区三区四区不卡| 欧美视频一区二区三区在线观看| 亚洲激情自拍视频| 91福利在线播放| 日韩精品一二区| 欧美va亚洲va在线观看蝴蝶网| 国产一区二区视频在线| 国产精品污网站| 色av成人天堂桃色av| 日韩不卡一二三区| 久久久久亚洲综合| www.综合网.com| 首页亚洲欧美制服丝腿| 欧美精品一区二区三区久久久| 国产91精品一区二区麻豆网站| 亚洲三级电影全部在线观看高清| 欧美怡红院视频| 国产在线日韩欧美| 中文字幕在线一区| 欧美日韩另类国产亚洲欧美一级| 老司机精品视频一区二区三区| 国产亚洲一区字幕| 在线欧美小视频| 韩国精品主播一区二区在线观看| 国产精品久久久久aaaa樱花| 欧美日本高清视频在线观看| 国产馆精品极品| 五月婷婷另类国产| 国产精品区一区二区三区 | 在线免费观看日韩欧美| 另类成人小视频在线| 亚洲免费观看高清完整版在线 | 午夜视黄欧洲亚洲| 国产精品免费视频一区| 欧美群妇大交群中文字幕| 国产电影精品久久禁18| 亚洲午夜成aⅴ人片| 国产女主播在线一区二区| 欧美日韩黄视频| 不卡在线观看av| 免费高清视频精品| 亚洲一区中文在线| 中文一区二区在线观看| 日韩区在线观看| 色婷婷综合激情| 国产高清精品久久久久| 免费观看在线综合色| 亚洲电影一级黄| 国产精品私人影院| 日韩免费视频一区二区| 欧美午夜精品免费| 91在线观看污| 成人性生交大片免费看中文网站| 男人的j进女人的j一区| 亚洲一区影音先锋| 亚洲色图.com| 亚洲视频在线观看三级| 国产欧美精品日韩区二区麻豆天美| 日韩欧美一级精品久久| 欧美日韩黄视频| 欧美日韩综合一区| 色婷婷av一区| 99九九99九九九视频精品| 国产夫妻精品视频| 国产精品一品二品| 国产伦精品一区二区三区视频青涩| 日韩电影在线免费看| 亚洲成人免费电影| 夜夜爽夜夜爽精品视频| 亚洲综合一二三区| 亚洲午夜久久久久中文字幕久| 亚洲欧美另类图片小说| 综合久久久久久| 综合分类小说区另类春色亚洲小说欧美| 国产亚洲精品超碰| 国产亚洲一二三区| 中文字幕久久午夜不卡| 国产女人18水真多18精品一级做| 久久久99精品免费观看不卡| 久久久99精品免费观看| 国产精品区一区二区三| 亚洲欧洲av一区二区三区久久| 成人免费一区二区三区在线观看| 中文字幕一区在线| 亚洲欧美另类图片小说| 亚洲午夜三级在线| 日本成人中文字幕在线视频| 日本午夜精品视频在线观看| 另类小说视频一区二区| 国产一区二区主播在线| 成人精品视频一区| 色欲综合视频天天天| 欧美视频精品在线| 日韩欧美一级精品久久| 欧美国产成人在线| 夜色激情一区二区| 琪琪久久久久日韩精品| 国产老女人精品毛片久久| av亚洲产国偷v产偷v自拍| 欧美熟乱第一页| 日韩免费视频一区| 亚洲欧洲韩国日本视频 | 蜜乳av一区二区| 国产美女精品在线| 色综合中文字幕| 91精品国产91热久久久做人人| 久久日韩精品一区二区五区| 中文字幕亚洲综合久久菠萝蜜| 一级特黄大欧美久久久| 国产在线不卡视频| 色天使色偷偷av一区二区| 日韩欧美一级二级三级| 综合中文字幕亚洲| 日韩国产一区二| 成人免费视频视频在线观看免费 | 国产精品66部| 一本久久综合亚洲鲁鲁五月天| 7777精品伊人久久久大香线蕉完整版 | 久久久精品蜜桃| 亚洲蜜桃精久久久久久久| 麻豆91在线看| 97精品国产露脸对白| 亚洲精品在线电影| 亚洲综合网站在线观看| 高清不卡一区二区| 91 com成人网| 亚洲免费电影在线| 国产福利一区二区三区视频在线 | 亚洲精品高清视频在线观看| 黄色资源网久久资源365| 欧美调教femdomvk| 国产精品国产自产拍在线| 热久久国产精品| 色悠悠久久综合| 国产日韩精品视频一区| 日本成人在线不卡视频| 在线影视一区二区三区| 国产欧美日韩中文久久| 免费看日韩a级影片| 欧美三级韩国三级日本三斤| 国产精品久久久久久亚洲伦| 麻豆精品一区二区| 欧美日韩一级二级| 一区二区三区蜜桃| 99精品一区二区| 国产精品久久免费看| 国产精品18久久久久久久久久久久 | 色成年激情久久综合| 国产欧美1区2区3区| 国产一区二区网址| 精品久久久久久久久久久久久久久久久| 一区二区三区在线不卡| 99精品久久久久久| 国产精品乱码人人做人人爱| 国产精品一区二区三区乱码| 日韩欧美一区在线| 日本va欧美va瓶| 91精品国产色综合久久| 日韩精品福利网| 欧美乱妇15p| 午夜欧美电影在线观看| 欧美日韩一区小说| 亚洲v精品v日韩v欧美v专区| 精品视频免费在线| 亚洲第一激情av| 91精品国产综合久久香蕉的特点| 午夜视频在线观看一区二区| 欧美影院一区二区| 日韩影院免费视频| 日韩欧美一级特黄在线播放| 久久99久久久久| 久久精品亚洲精品国产欧美kt∨| 国产一区二区调教| 亚洲国产成人午夜在线一区| av一区二区三区四区| 亚洲精选免费视频| 欧美日韩国产欧美日美国产精品| 五月婷婷激情综合网| 日韩免费在线观看| 国产成人综合网站| 国产精品成人在线观看| 色婷婷av一区二区三区gif| 亚洲国产日韩a在线播放| 欧美日韩国产另类一区| 久久综合综合久久综合| 中文字幕高清一区| 91麻豆视频网站| 丝袜亚洲另类欧美| 久久综合狠狠综合久久综合88| 国产电影精品久久禁18| 亚洲乱码一区二区三区在线观看| 欧美亚洲一区二区在线| 日本大胆欧美人术艺术动态| 欧美激情在线看| 欧美日韩视频在线观看一区二区三区 | 成人性生交大片免费| 亚洲国产综合91精品麻豆|