資源描述:
《博弈論作業(yè)——亞馬遜棋.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、博弈論與人工智能課程報(bào)告班級:學(xué)號:姓名:項(xiàng)目:亞馬遜棋標(biāo)題:亞馬遜棋研究一、博弈項(xiàng)目在計(jì)算機(jī)和人工領(lǐng)域的研究現(xiàn)狀和博弈規(guī)則(不少于400字或10行)10分研究現(xiàn)狀:亞馬遜棋(GameoftheAmazons),由阿根廷人WalteZamkauska在1988年推出的兩人棋類,是奧林匹亞電腦游戲程式競賽的比賽指定棋類,由于局面過于復(fù)雜,僅第一步就有兩千七百多種走法,故該棋類多不用于人類之間比賽,而是用于計(jì)算機(jī)博弈相關(guān)方面的比賽與研究。亞馬遜棋的程式實(shí)現(xiàn)包括了編程語言,算法思想,博弈思想等;常用的算法有蒙特卡洛算法,退火算法,遺傳
2、算法等;博弈規(guī)則:1.初始布置后,雙方輪流移動(dòng)一己方子。2.移動(dòng)棋子規(guī)則:方向可朝所移動(dòng)棋子為中心縱橫斜八個(gè)方向,移動(dòng)距離無限制,最終位置必須為空,且起始位置和最終位置之間中途不得有子。在移動(dòng)至目標(biāo)棋位后,從該棋位檢視其可移動(dòng)范圍,然后在這范圍的任一空格放至一枚箭,放箭時(shí),箭與落子后的位置之間不能有棋子。箭放定后,就不得移動(dòng)或移除。3.輸贏規(guī)則:一方的棋子無法行棋則輸?shù)舸擞螒?。無法移動(dòng)的定義是:棋子的周圍沒有空地。二、項(xiàng)目博弈技巧(不少于400字或10行)10分1.亞馬遜棋的行棋目的是用障礙或自身棋子將對方棋子堵死,使其不能移動(dòng)
3、,而另一種思路則是圈地思想,用障礙或己方棋子為自己圈出足夠大的地盤(對方棋子不能進(jìn)入的區(qū)域),因?yàn)閷Ψ降牡乇P沒有己方的多,這樣迫使對方自己最后無路可走,將自己堵死;2.現(xiàn)在用的主要是后一種控制區(qū)域(地盤)的思想,當(dāng)評估一個(gè)局面的好壞時(shí),主要看對方棋子控制的區(qū)域和己方棋子控制區(qū)域的多少,至于什么樣的區(qū)域算是己方的控制區(qū)域,現(xiàn)在多數(shù)用QueenMove的方法。3.多走對角線,占領(lǐng)一大塊地方,己方棋子最好分散開進(jìn)而獲得更多地盤。若在一塊地方與對方棋子展開爭奪,要注意留有后路,并且在封死對方的基礎(chǔ)上不能留給對方太多地方。4.當(dāng)自己被封死
4、時(shí),要充分利用被封死的地盤,做到每一格都沾滿。三、核心算法和程序?qū)崿F(xiàn)(不少于2000字或50行代碼,并提交完整工程)50分intiCalValue(intiMove){intbm,bn,em,en,sm,sn;intiValue=-1;if(iMove>0){bm=iMove/100000;bn=iMove/10000%10;em=iMove/1000%10;en=iMove/100%10;sm=iMove/10%10;sn=iMove%10;iValue=bm+bn+em+en+sm+sn;}returniValue;}int
5、CalMove(){intbm=-1,bn,em,en,sm,sn;intm,n,p,q,s,t,i,j,k,l;intiValueNow=-1,iMoveNow=-1,iMax=-999999;iMC=0;for(m=0;m<10;m++)//查詢所有招法for(n=0;n<10;n++){if(board[m][n]==AiColor){for(i=1;i<=9;i++)//向下行棋{j=0;//向下行棋p=m+i;//落子點(diǎn)行號q=n+j;//落子點(diǎn)列號if(p<0
6、
7、p>9
8、
9、q<0
10、
11、q>9)//如果超出棋盤break
12、;if(board[p][q]!=0)//如果有子阻攔break;for(k=1;k<=9;k++)//向下射箭{l=0;//向下射箭s=p+k;//射箭點(diǎn)行號t=q+l;//射箭點(diǎn)列號if(s<0
13、
14、s>9
15、
16、t<0
17、
18、t>9)//如果超出棋盤break;if(board[s][t]!=0&&!(s==m&&t==n))//如果有子阻攔,且不是起點(diǎn)break;iML[iMC]=m*100000+n*10000+p*1000+q*100+s*10+t;iMC++;}}}}for(i=0;i19、iCalValue(iML[i]);if(iValueNow>iMax){iMax=iValueNow;iMoveNow=i;}}if(iML[iMoveNow]>=0){bm=iML[iMoveNow]/100000;bn=iML[iMoveNow]/10000%10;em=iML[iMoveNow]/1000%10;en=iML[iMoveNow]/100%10;sm=iML[iMoveNow]/10%10;sn=iML[iMoveNow]%10;board[bm][bn]=0;board[em][en]=AiColor;b
20、oard[sm][sn]=2;}returniMoveNow;}四、現(xiàn)有缺點(diǎn)和改進(jìn)方向(不少于400字或10行)10分現(xiàn)有缺點(diǎn):1.射箭方向單一2.落子位置不全3.對局面估計(jì)還不夠精確4.作為游戲,不可以悔棋改進(jìn)方向:1.補(bǔ)償其它射箭方向2.補(bǔ)充其它落子位置3.