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

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

??

?? 老鼠走迷宮程序實例
??
字號:
老鼠走迷宮程序實例  
 

 


/*--------------------------------------------------------------------------------------------
//文件名稱:MazeMouse.cpp
//功    能:找出走出迷宮的所有路徑,以及最短路徑。

#include "stdafx.h"
#include "iostream.h"
#include "string.h"
#include "stdio.h"

double dMeans=0,dWalkLen=10000;//dMeans表示走出迷宮的方法,dWalkLen表示當前走出迷宮最少步數             
char Maze[10][52]={
     {"###################################################"},
     {"% ## ####           ###                  ### # ####"},
     {"# ##  # ###  ### ###### ### ############ #   #    #"},
     {"# ## ## ###  ##  ##     # # ## #           #   ####"},
     {"# #    # ## ##  ### #          # ######### # # # ##"},
     {"#      # #   # ##     ########## ####   ##   #    #"},
     {"# ## ### ## ## ### #### ##    ##    # # ######### #"},
     {"# #  #      ## ##       #  ##  #### # #  ##    ####"},
     {"####   ## ####    ####    ##  # ###   ##    ##    @"},
     {"###################################################"},
    };            //迷宮
int MazeFlag[10][51];  //迷宮的標志:0表示未走過,i(i=1,2,3,4)表示已經走過了,i表示方向。
int MazeMin[10][51];   //路徑最小的迷宮的標志

void Walk(int nx,int ny);//走迷宮的函數,nx是列,ny是行
void PrintOut();         //打印路徑及迷宮的函數,同時比較獲取路徑較短的行走方法
int  Judge(int nx,int ny,int i);//判斷在第nx列ny行向第i個方向走是否可以,可以返回1否則返回0。
                                //i=1表示向右,2表示向下,3表示向左,4表示向上

/*---------------------------------------------------------------------------------------------
//行走迷宮函數: void Walk (int nx,int ny)
//功能:判斷是否已經走出迷宮,如果走出則打印路徑,如果沒有則開始逐個方向判斷是否可以行走,
//      如果都不能行走,或已經返回。則退出該位置,即將該位置的標志寫為0表明未走過。
//無返回值,形參nx為當前位置的列,ny為當前位置的行。
---------------------------------------------------------------------------------------------*/
void Walk(int nx,int ny)
{
 if (Maze[nx][ny]=='@')//判斷是否走出迷宮,@是迷宮出口標志
  PrintOut();       //走出則打印出迷宮及行走路徑
 else                  //未走出迷宮
 {
  for (int i=1; i<=4; i++)//四個方向逐個行走,i=1向右 2向下 3向左 4向上
  {
   if (Judge(nx,ny,i)) //如果列為nx行為ny的位置向i方向是否可以行走
   {                   
    MazeFlag[nx][ny]=i;//將標志位置i表明該位置向i方向可行走

    if (i==1)          //分散處理,根據不同的i來確定下一步的位置,以便行走。
     Walk(nx,ny+1);
    else if (i==2)
     Walk(nx+1,ny);
    else if (i==3)
     Walk(nx,ny-1);
    else if (i==4)
     Walk(nx-1,ny);
   }
  }
  
  MazeFlag[nx][ny]=0;//如果4個方向都走不通,或者回朔則清空該點標志位,置為0表明未走過。
 }

}


/*---------------------------------------------------------------------------------------------
//打印函數:void PrintOut()
//功能:    打印第dMeans種方法的在迷宮中的行走路徑,以及通過比較找出目前行走步數最少的行走方法。
//無返回值,無形參。dMeans表示當前行走方法的種類。dCount是用來計算此種方法用了多少步。
---------------------------------------------------------------------------------------------*/
void PrintOut()
{
 int nx,ny;
 double dCount=0;

 dMeans++;

 cout<<"The "<<dMeans<<" ways is: "<<endl;
 
 for (nx=0;nx<10;nx++)
 {
  for (ny=0;ny<51;ny++)
  {
   if (Maze[nx][ny]=='#')//#表示墻
    cout<<"#";
   else if (MazeFlag[nx][ny]==0)//不是墻但未走過的地方用空格表示
    cout<<" ";
   else                 //不是墻且走過的地方用*表示
   {
    cout<<".";
    dCount++;       //走一步總步數加1
   }
  }
  cout<<endl;
 }

 cout<<"This way used "<<dCount<<" steps"<<endl;

 if (dCount<dWalkLen)//如果此種方法的步數比以前方法中最少步數還要少,
 {                   //則將此種方法列為當前最少行走步數
  for (nx=0;nx<10;nx++)
   for(ny=0;ny<51;ny++)
    MazeMin[nx][ny]=MazeFlag[nx][ny];
  dWalkLen=dCount;
 }
}


/*--------------------------------------------------------------------------------------------
//判斷函數:int Judge(int nx,int ny,int i)
//功能:    判斷當前位置(nx為列ny為行)向第i方向行走是否可以
//返回值int型 返回1表明可以,0表示不可以
--------------------------------------------------------------------------------------------*/
int Judge(int nx,int ny,int i)
{
 if (i==1)//判斷向右可否行走
 {
  if (ny<50&&(Maze[nx][ny+1]==' '||Maze[nx][ny+1]=='@')&&MazeFlag[nx][ny+1]==0)
   return 1;
  else
   return 0;
 }
 else if (i==2)//判斷向下可否行走
 {
  if (nx<9&&(Maze[nx+1][ny]==' '||Maze[nx+1][ny]=='@')&&MazeFlag[nx+1][ny]==0)
   return 1;
  else 
   return 0;
 }
 else if (i==3)//判斷向左可否行走
 {
  if (ny>0&&(Maze[nx][ny-1]==' '||Maze[nx][ny-1]=='@')&&MazeFlag[nx][ny-1]==0)
   return 1;
  else
   return 0;
 }
 else if (i==4)//判斷向上可否行走
 {
  if (nx>0&&(Maze[nx-1][ny]==' '||Maze[nx-1][ny]=='@')&&MazeFlag[nx-1][ny]==0)
   return 1;
  else
   return 0;
 }
 else
  return 0;

}

 

int main(int argc, char* argv[])
{
 int nx,ny,ni,nj;

 cout<<"迷宮游戲: "<<endl;
 
 for (ni=0;ni<10;ni++)//輸出迷宮形狀,并且找到迷宮的入口,同時將迷宮標志初始化
 { 
  for(nj=0;nj<51;nj++)
  {
   cout<<Maze[ni][nj];
   MazeFlag[ni][nj]=0;//將迷宮標志初始化為0表示未走過
   if (Maze[ni][nj]=='%')
   {
    nx=ni;//迷宮入口列坐標
    ny=nj;//迷宮入口行坐標
   }
  }
  cout<<endl;
 }
 
 cout<<endl<<"入口坐標:"<<endl<<"nx= "<<nx<<"   "<<"ny= "<<ny<<endl; 

 Walk(nx,ny);//調用行走迷宮函數,從入口處開始行走

 cout<<endl<<"The MinLen way is: "<<endl;

 for (nx=0;nx<10;nx++)//輸出最短路徑
 {
  for (ny=0;ny<51;ny++)
  {
   if (Maze[nx][ny]=='#')
    cout<<"#";
   else if (MazeMin[nx][ny]==0)
    cout<<" ";
   else
   {
    cout<<".";
   }
  }
  cout<<endl;
 }

 cout<<"This Way used "<<dWalkLen<<" steps"<<endl;//輸出最短路徑總行走步數

 return 0;
}


 
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美激情在线| 国产精品久99| 欧美在线观看一区二区| av一区二区三区在线| 风间由美性色一区二区三区| 国产一区二区电影| 国产成人免费视频网站高清观看视频| 久久精品国产999大香线蕉| 青青草国产成人99久久| 欧美aaaaa成人免费观看视频| 奇米精品一区二区三区在线观看一 | 亚洲成人动漫精品| 亚洲成a人片在线观看中文| 午夜精品福利一区二区三区蜜桃| 亚洲一二三区不卡| 久久黄色级2电影| 成人黄色免费短视频| 99精品一区二区三区| 色香蕉成人二区免费| 欧美日韩一级黄| 精品国产一二三区| 日本一区二区免费在线| 亚洲女与黑人做爰| 美国精品在线观看| 粗大黑人巨茎大战欧美成人| 91天堂素人约啪| 91精品国产综合久久久久久久 | 激情综合色播五月| 粗大黑人巨茎大战欧美成人| 在线影视一区二区三区| 日韩欧美一区二区视频| 国产清纯美女被跳蛋高潮一区二区久久w| 1024精品合集| 久久99精品久久久久| 97久久超碰精品国产| 91精品国产综合久久福利软件| 久久伊99综合婷婷久久伊| 亚洲综合久久久| 国产精品一区二区三区乱码| 色欧美日韩亚洲| 国产午夜亚洲精品理论片色戒| 亚洲最大的成人av| 国产一区二区三区免费播放| 欧美色区777第一页| 久久久国产综合精品女国产盗摄| 亚洲精品成人少妇| 成人在线视频首页| 精品美女在线观看| 亚洲高清一区二区三区| 成人av资源在线观看| 91精品国产综合久久久蜜臀粉嫩| 亚洲欧洲综合另类| 丁香激情综合五月| 精品国产百合女同互慰| 日韩精品五月天| 在线视频一区二区三区| 国产精品伦一区| 国产成人亚洲综合a∨婷婷| 欧美精品1区2区3区| 午夜亚洲福利老司机| 成人性色生活片| 久久天天做天天爱综合色| 午夜欧美视频在线观看| 欧美综合一区二区| 亚洲美女视频一区| 一本到三区不卡视频| 国产精品国产三级国产三级人妇| 国产伦精一区二区三区| 国产精品麻豆久久久| 久久99热国产| 久久综合九色综合97婷婷| 日本v片在线高清不卡在线观看| 欧美日韩在线亚洲一区蜜芽| 亚洲已满18点击进入久久| 一本到高清视频免费精品| 亚洲欧美日韩国产综合| 色婷婷精品久久二区二区蜜臀av | 国产精品色一区二区三区| 国产成人午夜精品影院观看视频 | 国产精品成人免费 | 亚洲另类在线制服丝袜| 成人丝袜高跟foot| 亚洲欧洲精品一区二区三区 | 午夜久久久久久久久| 欧美日韩国产首页在线观看| 性感美女久久精品| 欧美一级黄色录像| 精品一区二区三区不卡 | 国产suv精品一区二区三区| 国产视频一区二区三区在线观看| 国产高清精品在线| 国产精品高潮呻吟久久| 日本韩国欧美国产| 手机精品视频在线观看| 欧美成人伊人久久综合网| 国产成人综合在线观看| 专区另类欧美日韩| 精品视频1区2区| 蜜桃一区二区三区在线观看| 久久久久久久久蜜桃| 99久久免费国产| 日韩激情在线观看| 欧美国产精品久久| 欧美综合在线视频| 国内精品久久久久影院薰衣草 | 51精品秘密在线观看| 久久国产日韩欧美精品| 国产精品家庭影院| 欧美日韩一区 二区 三区 久久精品| 麻豆精品视频在线| 国产精品国产成人国产三级| 欧美一区二区视频网站| 高清beeg欧美| 日本aⅴ亚洲精品中文乱码| 国产日韩精品一区二区三区 | 国产午夜亚洲精品午夜鲁丝片| 91视频观看视频| 麻豆高清免费国产一区| 亚洲免费伊人电影| 精品久久久影院| 欧美日韩一区二区在线观看视频| 国产伦精一区二区三区| 亚洲综合色视频| 日本一区二区三级电影在线观看| 欧美美女一区二区| 色婷婷av一区二区| 国产精品2024| 蜜桃在线一区二区三区| 亚洲综合色成人| 中文字幕永久在线不卡| 久久综合视频网| 欧美亚洲动漫另类| 成人午夜免费av| 国产成人在线视频网址| 五月激情六月综合| 亚洲综合激情网| 综合色中文字幕| 国产精品视频免费看| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美丰满高潮xxxx喷水动漫| 欧美成人精品1314www| 欧美性感一区二区三区| av在线综合网| youjizz国产精品| 国产高清不卡一区| 国产激情偷乱视频一区二区三区| 久久精品免费看| 轻轻草成人在线| 天天av天天翘天天综合网色鬼国产 | 日产国产欧美视频一区精品| 一二三区精品福利视频| 亚洲视频 欧洲视频| 国产精品国产三级国产有无不卡 | 精品成a人在线观看| 欧美一卡在线观看| 日韩一区二区免费电影| 日韩欧美一二区| 欧美mv日韩mv| 国产视频一区二区在线| 中文字幕第一区综合| 1024国产精品| 亚洲视频小说图片| 亚洲三级电影网站| 亚洲卡通动漫在线| 亚洲成人av一区二区| 天天综合天天做天天综合| 麻豆国产91在线播放| 国产suv精品一区二区三区| 成人av在线播放网站| 色视频欧美一区二区三区| 欧美性猛片xxxx免费看久爱| 欧美精选一区二区| 精品成a人在线观看| 国产精品欧美一区喷水| 韩国一区二区三区| 不卡欧美aaaaa| 欧美日韩不卡在线| 国产亚洲精品bt天堂精选| 国产精品青草久久| 天天做天天摸天天爽国产一区 | 国产肉丝袜一区二区| 自拍偷拍国产精品| 美洲天堂一区二卡三卡四卡视频| 国产精品一区免费视频| 欧洲精品一区二区| 精品国产网站在线观看| 国产精品久久久久久久久果冻传媒| 亚洲午夜在线电影| 国产伦理精品不卡| 欧美三级电影网站| 中文字幕 久热精品 视频在线| 亚洲午夜成aⅴ人片| 国产传媒久久文化传媒| 欧美日韩国产三级| 国产精品久久毛片av大全日韩| 日本美女一区二区三区| 99r精品视频| ww久久中文字幕| 日日骚欧美日韩| 色综合亚洲欧洲|