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

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

?? huarongdaojavashixian.txt

?? 華容道的java實現(xiàn)
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
    printf("\r\n");

  }

}

//---------------------------------------------------------------------------

void main(int argc, char* argv[]){

 int i,ok,t1=clock();

 QP qp={

   3,5,5,3,

   1,1,1,1,

   3,4,4,3,

   1,2,2,1,

   2,0,0,2

 };

 ok=S.bfs(qp,500);

 if(!ok) printf("此局500層內無解.\r\n");

 if(ok==-1) printf("此局無解.\r\n",200);

 printf("%d層有解,遍歷%d節(jié)點,哈希%d節(jié)點,隊長%d,哈希沖突%d次,用時%dms\r\n",S.ren,S.js,S.js2,S.dn,S.Hx.cht,clock()-t1);

 for(i=0;i<S.ren;i++) {

   printf("第%d步(ESC退出)\r\n",i);

   prt(S.getre(i));

   if(getch()==27) break;

   clrscr();

 }

 getch();

}

//---------------------------------------------------------------------------

 

八、利用javascript進行華榮道搜索

 

//===============================================

//===============================================

//===============================================

//下文是利用javascript進行華容道搜索

//速度:約25秒(P2.4G)

//設計:許劍偉,2006年5月5日下午及晚上—2006年5月6日上午

//===============================================

<html>

<head>

<title>華容道</title>

</head>

 

<body>

<script language=javascript>

var QZLX=Array();//棋子類型表

QZLX.A="A";

QZLX.B="B";

QZLX.X="B";

QZLX.Y="B";

QZLX.Z="B";

QZLX.C="C";QZLX.D="C";QZLX.E="C";QZLX.F="C";QZLX.G="C";

QZLX.H="H";QZLX.I="H";QZLX.J="H";QZLX.K="H";QZLX.L="H";

QZLX.M="M";

var COL=Array(0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3); //列號表

var ROW=Array(0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4); //行號表

qp=Array( 

 "C","M","M","D",

 "C","M","M","D",

 "E","H","H","F",

 "E","X","Y","F",

 "B","A","A","Z"

// "B","M","M","B",

// "E","M","M","F",

// "E","H","H","F",

// "B","I","I","B",

// "A","J","J","A"

// "M","M","A","C",

// "M","M","A","C",

// "D","E","H","H",

// "D","E","B","F",

// "B","B","B","F"

);

 

function qpToS(q){ //棋盤轉為串

  var i,j,s="";

  for(i=0;i<5;i++,s+="<br>")

    for(j=0;j<4;j++) s+=q[i*4+j]+" ";

  return s.replace(/[A]/g,"&nbsp;");

}

function BM(q){   //快速編碼

  return q.join("").replace(/[DEFG]/g,"C").replace(/[IJKL]/g,"H").replace(/[XYZ]/g,"B");

}

function dcBM(q){ //對稱編碼

  var s=q[3]+q[2]+q[1]+q[0]+q[7]+q[6]+q[5]+q[4]+q[11]+q[10]+q[9]+q[8]+q[15]+q[14]+q[13]+q[12]+q[19]+q[18]+q[17]+q[16];

  return s.replace(/[DEFG]/g,"C").replace(/[IJKL]/g,"H").replace(/[XYZ]/g,"B");

}

function zbFX(q){ //走步分析

  var i,r="";

  for(i in q){ //i是字符型

    if(q[i-0]!="A") continue;

    i=i-0;

    if(ROW[i]<4){

      switch(QZLX[q[i+4]]){ //下棋子

        case "B": { r+=i+4+" "+i+" "; break; }

        case "C": { r+=i+4+" "+i+" "; break; }

        case "H": if(q[i+4]==q[i+5]&&q[i+1]=="A") { r+=i+4+" "+i+" "; break; }

        case "M": if(q[i+4]==q[i+5]&&q[i+1]=="A") { r+=i+4+" "+i+" "; }

      }

      if(q[i+4]=="A"&&ROW[i]<3){ //處理下二棋子

        switch(QZLX[q[i+8]]){ 

          case "C": { r+=i+8+" "+i+" "; break; }

          case "B": { r+=i+8+" "+i+" "; }

        }

      }

    }

    if(ROW[i]){

      switch(QZLX[q[i-4]]){ //上棋子

        case "B": { r+=i-4+" "+i+" "; break; }

        case "C": { r+=i-8+" "+(i-4)+" "; break; }

        case "H": if(q[i-4]==q[i-3]&&q[i+1]=="A") { r+=i-4+" "+i+" "; break; }

        case "M": if(q[i-4]==q[i-3]&&q[i+1]=="A") { r+=i-8+" "+(i-4)+" "; }

      }

      if(q[i-4]=="A"&&ROW[i]>1){ //處理上二棋子

        switch(QZLX[q[i-8]]){ 

          case "C": { r+=i-12+" "+(i-4)+" "; break; }

          case "B": { r+=i-8+" "+i+" "; }

        }

      }

    }

    if(COL[i]){ //處理左邊棋子

      switch(QZLX[q[i-1]]){ //左棋子

        case "B": { r+=i-1+" "+i+" "; break; }

        case "H": { r+=i-2+" "+(i-1)+" "; break; }

        case "C": if(q[i-1]==q[i+3]&&q[i+4]=="A") { r+=i-1+" "+i+" "; break; }

        case "M": if(q[i-1]==q[i+3]&&q[i+4]=="A") { r+=i-2+" "+(i-1)+" "; }

 

      }

      if(q[i-1]=="A"&&COL[i]>1){ //處理左二棋子

        switch(QZLX[q[i-2]]){ 

          case "H": { r+=i-3+" "+(i-1)+" "; break; }

          case "B": { r+=i-2+" "+i+" "; }

        }

      }

      if(QZLX[q[i-5]]=="B"&&(q[i-1]=="A"||q[i-4]=="A")) { r+=i-5+" "+i+" "; } //左上方棋子

      if(QZLX[q[i+3]]=="B"&&(q[i-1]=="A"||q[i+4]=="A")) { r+=i+3+" "+i+" "; } //左下方棋子

    }

    if(COL[i]<3){ //處理右邊棋子

      switch(QZLX[q[i+1]]){ //右棋子

        case "B": { r+=i+1+" "+i+" "; break; }

        case "H": { r+=i+1+" "+i+" "; break; }

        case "C": if(q[i+1]==q[i+5]&&q[i+4]=="A") { r+=i+1+" "+i+" "; break; }

        case "M": if(q[i+1]==q[i+5]&&q[i+4]=="A") { r+=i+1+" "+i+" "; }

 

      }

      if(q[i+1]=="A"&&COL[i]<2){ //處理右二棋子

        switch(QZLX[q[i+2]]){ 

          case "H": { r+=i+2+" "+i+" "; break; }

          case "B": { r+=i+2+" "+i+" "; }

        }

      }

      if(QZLX[q[i-3]]=="B"&&(q[i+1]=="A"||q[i-4]=="A")) { r+=i-3+" "+i+" "; } //右上方棋子

      if(QZLX[q[i+5]]=="B"&&(q[i+1]=="A"||q[i+4]=="A")) { r+=i+5+" "+i+" "; } //右下方棋子

    }

  }

  return q.join(" ")+" "+r; //為防止對象過多,干脆用一個單串返回

}

function zb(q,s,d){

  var c=q[s];

  switch(QZLX[c]){

    case "B": {q[s]="A";                      q[d]=c;        break; }

    case "C": {q[s]=q[s+4]="A";               q[d]=q[d+4]=c; break; }

    case "H": {q[s]=q[s+1]="A";               q[d]=q[d+1]=c; break; }

    case "M": {q[s]=q[s+1]=q[s+4]=q[s+5]="A"; q[d]=q[d+1]=q[d+4]=q[d+5]=c; break; }

  }

  return q;

}

//------------------------------------

function ZBD(){ //構造走步隊對象

  this.z=Array();  //隊列,this為當前對象,常在構造時使用,在沒有用new分配一個實體前,this不明確

  this.hs=Array(); //回朔指針

  this.hsb=Array(); //回朔步

  this.hd=0;       //隊頭指針

  this.cur=Array();//隊頭信息

  this.Rd=zbrd;    //入隊方法

  this.Cd=zbcd;    //出隊方法 

  this.getQP=getqp;

  this.cur.n="null"; //cur無內容標記

  

}

function zbrd(q,fla){ //走步入隊,第二個參數(shù)為是否回朔

  var n=this.z.length;

  this.z[n]=zbFX(q);

  if(fla==-1) this.hs[n]=0,this.hsb[n]="無棋子";//回朔指針

  else this.hs[n]=this.hd,this.hsb[n]=this.cur[this.cur[this.cur.p-2]]; 

}

function zbcd(){ //走步出隊

  if(this.cur.n=="null"){

    this.cur=this.z[this.hd].split(" ");

    this.cur.n=this.cur.length-1;//原串中最后一個是空格所以多減1

    this.cur.p=20; //棋步游標

  }

  if(this.cur.p>=this.cur.n) {this.hd++; this.cur.n="null"; return "";}

  var p=this.cur.p;

  this.cur.p+=2;

  if(this.cur[this.cur[p]]==this.hsb[this.hd]) return "";

  return zb(this.cur.slice(0,20),this.cur[p]-0,this.cur[p+1]-0); //使用拷貝盤傳入

}

function getqp(n){ //從隊中取出棋盤

  var s=this.z[n].split(" ");

  return s.slice(0,20);

}

//------------------------------------

//廣度優(yōu)先搜索

//------------------------------------

 

function GDsearch(q,dep){ //參數(shù)為棋盤及搜索最大深度

  var i,k,ok=0,bm,v; //ok表示是否找到

  var js=0,js2=0;

  var D=new ZBD(); //建立走步隊

  var JD=Array();  //結點記錄器

  for(D.Rd(q,-1),i=1;i<=dep&&!ok;i++){ //一層一層的搜索

    k=D.z.length;

    while(D.hd<k){ //廣度優(yōu)先

      q=D.Cd(); //出隊

      if(q=="") continue;     //返回空說明是步集出隊,不是步出隊

      if(q[17]=="M"&&q[18]=="M") { ok=1;break;} //大王出來了

      if(i==dep) continue; //到了最后一層就不再入隊了

      bm=BM(q); v=JD[bm];

      js++;

      if(!v){

        js2++ ;  //js搜索總次數(shù)計數(shù)和js2遍歷的實結點個數(shù)

        JD[bm]=i, JD[dcBM(q)]=i;//對節(jié)點及其對稱點編碼并計錄結點深度

        D.Rd(q,0);  //入隊

      }

    }

  }

  k=i-1; //實際計算的層數(shù)

  var s="共遍歷"+js+"個節(jié)點,其中實結點"+js2+"搜索步數(shù)"+k+"<hr>";

  var hs=Array();

  if(ok){

    for(i=1,hs[0]=D.hd;i<k;i++) hs[i]=D.hs[hs[i-1]]; //回塑

    for(i=k-1;i>=0;i--)  s+=qpToS(D.getQP(hs[i]))+"<hr>";

    s+=qpToS(q);

  }

  else s+="此局"+dep+"步內無解";

  return s;

}

document.write(GDsearch(qp,130));

 

</script>

</body>

 

</html>

 

 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re这里都是精品| 中文字幕av免费专区久久| 欧美日韩国产高清一区| 国产亚洲精品福利| 亚洲444eee在线观看| 国产91精品一区二区麻豆网站| 国产精品少妇自拍| 日韩精品电影一区亚洲| 成人精品免费视频| 精品国产123| 天堂蜜桃一区二区三区| 91视频在线看| 国产午夜精品久久久久久久 | 色狠狠色噜噜噜综合网| 久久久久国产成人精品亚洲午夜 | 欧美日韩一卡二卡三卡 | 欧美一三区三区四区免费在线看 | 色综合久久天天| 中文字幕欧美三区| 久久成人免费日本黄色| 欧美日韩精品一二三区| 一区二区三区视频在线看| 不卡的av在线播放| 国产日本欧美一区二区| 国产伦理精品不卡| 欧美sm极限捆绑bd| 成人sese在线| 久久蜜桃一区二区| 久久97超碰国产精品超碰| 3d成人h动漫网站入口| 一区二区三区资源| 在线精品国精品国产尤物884a| 国产精品高潮久久久久无| bt欧美亚洲午夜电影天堂| 国产精品三级在线观看| 成人高清视频免费观看| 2017欧美狠狠色| 国产不卡高清在线观看视频| 久久久欧美精品sm网站| 成人美女在线观看| 亚洲天堂精品在线观看| 一本大道综合伊人精品热热| 亚洲欧美福利一区二区| 日本久久精品电影| 亚洲成人精品在线观看| 91精品国产91久久综合桃花 | 97久久精品人人做人人爽50路| 国产精品久久久久久久久久免费看| 粉嫩一区二区三区性色av| 国产精品女主播av| 日本伦理一区二区| 日本va欧美va瓶| 久久久久久麻豆| 91免费观看在线| 日本伊人色综合网| 国产亚洲精品超碰| 色综合久久88色综合天天免费| 亚洲第一综合色| 精品第一国产综合精品aⅴ| 不卡电影一区二区三区| 亚洲欧洲国产日本综合| 欧美性一区二区| 不卡在线观看av| 亚洲日本一区二区| 欧美性猛片xxxx免费看久爱| 亚洲不卡av一区二区三区| 精品sm在线观看| 95精品视频在线| 蜜臀精品一区二区三区在线观看| 久久久久久一二三区| 91美女视频网站| 韩日精品视频一区| 一区二区三区在线视频观看58| 91麻豆精品国产无毒不卡在线观看| 国产剧情在线观看一区二区| 亚洲另类色综合网站| 精品粉嫩aⅴ一区二区三区四区| 不卡电影免费在线播放一区| 日本欧美韩国一区三区| 最新热久久免费视频| 欧美一级高清片在线观看| 成人一级片网址| 美国十次了思思久久精品导航| 国产精品嫩草影院com| 玉米视频成人免费看| 制服丝袜亚洲色图| 成人av动漫在线| 久久综合综合久久综合| 一区二区三区在线免费视频| 久久影院电视剧免费观看| 777午夜精品免费视频| www.亚洲在线| 精品一区二区三区久久久| 一区二区三区欧美亚洲| 久久久久久久电影| 91精品国产入口在线| 91福利视频在线| 99视频在线观看一区三区| 国产一区二区精品在线观看| 首页国产欧美日韩丝袜| 一片黄亚洲嫩模| 亚洲男人的天堂av| 国产精品高潮久久久久无| 久久精品在线免费观看| 精品美女一区二区| 欧美揉bbbbb揉bbbbb| 国产suv一区二区三区88区| 九九视频精品免费| 视频一区中文字幕| 亚洲成人免费av| 亚洲蜜臀av乱码久久精品| 日韩国产精品大片| 亚洲成a人片综合在线| 亚洲一二三区视频在线观看| 国产精品久线在线观看| 国产精品入口麻豆九色| 国产精品三级电影| 中文字幕一区在线| 亚洲精品成人悠悠色影视| 亚洲欧美日韩国产中文在线| 亚洲狼人国产精品| 亚洲一区日韩精品中文字幕| 亚洲一区二区三区自拍| 午夜激情一区二区| 日本网站在线观看一区二区三区| 青青草原综合久久大伊人精品| 五月天国产精品| 另类小说综合欧美亚洲| 狠狠色狠狠色综合系列| 国产成人在线电影| www.成人网.com| 亚洲一区二区综合| 韩日精品视频一区| 国产一区91精品张津瑜| 国产成人亚洲综合a∨猫咪| 国产成人啪午夜精品网站男同| 成人免费高清在线| 色先锋aa成人| 欧美一区二区黄色| 久久婷婷一区二区三区| 中文字幕亚洲视频| 亚洲成人综合网站| 国产精品一卡二卡| 日本道免费精品一区二区三区| 777xxx欧美| 国产亚洲制服色| 亚洲综合精品自拍| 国产一区啦啦啦在线观看| 91香蕉视频污在线| 精品少妇一区二区三区日产乱码 | 久久99精品久久久久婷婷| 精品一区二区精品| 91麻豆swag| 91麻豆精品国产综合久久久久久| 久久综合久久综合九色| 综合久久给合久久狠狠狠97色| 午夜精品久久久久久久久久久| 国产高清不卡二三区| 欧美日韩精品一区二区三区蜜桃 | 欧美精品 日韩| 国产精品电影一区二区| 免费的成人av| 91福利视频网站| 日本一区二区成人| 美腿丝袜在线亚洲一区| 在线成人午夜影院| 欧美本精品男人aⅴ天堂| 国产精品激情偷乱一区二区∴| 久久er精品视频| 色老头久久综合| 久久香蕉国产线看观看99| 天天操天天色综合| 99视频一区二区| 国产亚洲精品免费| 日本在线不卡视频| 欧美日韩精品高清| 亚洲免费大片在线观看| 国产aⅴ综合色| 日韩精品一区二区三区三区免费 | 欧美私模裸体表演在线观看| 欧美国产精品专区| 国产在线一区二区综合免费视频| 欧美日韩国产小视频| 亚洲欧美在线视频| 国产成人免费视| 精品99一区二区三区| 日韩在线观看一区二区| 欧美日韩精品系列| 亚洲国产成人va在线观看天堂| 99精品视频一区二区三区| 国产视频一区在线播放| 久久99精品国产麻豆不卡| 欧美一区二区三区在线观看视频| 亚洲国产欧美日韩另类综合| 日本电影亚洲天堂一区| 亚洲精品国产成人久久av盗摄 | 国产成a人亚洲| 国产视频一区不卡| 国产成+人+日韩+欧美+亚洲| 国产亚洲一区二区三区在线观看|