freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

五子棋人機對戰(zhàn)設(shè)計方案-文庫吧資料

2025-05-21 00:21本頁面
  

【正文】 f(wzq[i][j+1]==1) { =i。 } } //////////////////////////// num[1] | if(n==1) for(k=0。 =j。 break。 } } //如果找到下棋位置,一定能找到! else if(wzq[i+k][j]==0) { //如果第一個是白棋 if(wzq[j][j]==1) { =i+k。 =j。 break。k++) //如果第一個是空 if(wzq[i][j]==0) { //如果下面有白棋 if(wzq[i+1][j]==1) { //下面位置可以下棋,已經(jīng)有四個白棋 =i。 ///////////////////////////// num[0] if(n==0) for(k=0。void searchcandown4(int i,int j,int n)函數(shù)如果最大值是四,它必然有一個空位置;我們可以這樣計算,如果第一個是空,那我們把它賦值給相應(yīng)變量;否則,先找那個空位置,然后判斷第一個棋子的顏色,并賦相應(yīng)的值。} =d。 =c。 =b。 =a?,F(xiàn)在先介紹CPoint maxnum(int a,int b,int c,int d)函數(shù),它只是四個整數(shù)的比較: CPoint CMyView::maxnum(int a, int b, int c, int d){ // // CPoint point。 void searchcandown4(int i,int j,int n)。 void searchcandown2(int i,int j,int n)。 }}break。break。break。// // numbig=maxnum(num[0],num[1],num[2],num[3])。 //比較哪個方向同色棋最多//由于我們搜索落棋點時用到最大值和方向,我們可以定義一個Cpoint類變量,//讓它返回兩個值。 num[3]=abs(a)。k5。amp。 ////////////////////////////// num[3] / a=0。k++) a=a+wzq[i+k][j+k]。j15) for(k=0。 if(i15amp。 num[1]=abs(a)。k5。 ////////////////////////////// num[1] | a=0。k++) a=a+wzq[i+k][j]。 if(i15) for(k=0。 int a,k。我們添加函數(shù)如下:所以我們可以利用這種方法來尋找旁邊有多個同色棋子的空位置(前面已經(jīng)具體說明)。它的實現(xiàn)原理是:在四個方向上,各自計算那個方向上棋子的狀態(tài),我們的思路是利用原來定義的白棋為1,黑棋為1,的思想,讓同個方向上的五個棋子的值相加,取絕對值并賦值給為這個方向定義的局部變量num[i]。326搜索最佳落棋點 colorwhite=true。 =*20+30。//由于原來我們檢查是否結(jié)束時用的是鼠標點下的坐標,而現(xiàn)在//putdown(CPoint point)函數(shù)用的是數(shù)組棋盤的坐標,所以必須轉(zhuǎn)換 CPoint overpoint。Dc,0,0,SRCCOPY)。 (m_bmblack)。 if((pDC)==FALSE) AfxMessageBox(Can39。 //黑棋下void CMyView::putdown(CPoint point){ CDC *pDC=GetDC()。325在指定位置下棋現(xiàn)在,我們就必須對上面兩個空函數(shù)進行定義了。 }}上面又有兩個新函數(shù),分別定義為空函數(shù),如下: //搜索最佳位置 void bestputdown(int i,int j)。 } else { putdown(bpointcan1)。 } else if(!=1) { putdown(wpointcan2)。 } else if(!=1) { putdown(bpointcan2)。 } else if(!=1) { putdown(wpointcan3)。 } else if(!=1) { putdown(bpointcan3)。 } else if(!=1) { putdown(wpointcan4)。 //判斷放在哪里 //棋多的位置優(yōu)先 //黑白一樣多時黑先 //不是1就表示已經(jīng)被賦值! if(!=1) { putdown(bpointcan4)。j19。i19。 bpointcan1=(1,1)。 bpointcan2=(1,1)。 bpointcan3=(1,1)。//輪到計算機下棋void CMyView::puterdown(){ //把各種情形賦值為如下 bpointcan4=(1,1)。其原理是,如果已經(jīng)有四個黑棋,計算機再下一個黑棋就贏了;否則,如果人已經(jīng)有四個白棋,那么計算機就必須放下一個黑棋,阻止白棋下一步贏;如果已經(jīng)有三個黑棋,再下一個黑棋,變成四個;否則,如果已經(jīng)有三個白棋,下一個黑棋,破壞它;兩個棋子的同理;否則,在剛才白棋下的地方,順便找一個位置,下棋。注意:我們只保存最后一個值,這樣的一個好處是,避免了每次都從左上角開始,并且它的隨機性比隨機函數(shù)還隨機。由于有多種情況,我們定義變量如下:CPoint bpointcan4, //這個位置空,它旁邊有四個黑棋 wpointcan4, //這個位置空,它旁邊有四個白棋 bpointcan3, //這個位置空,它的旁邊有三個黑棋 wpointcan3, //這個位置空,它的旁邊有三個白棋 bpointcan2, //這個位置空,它的旁邊有兩個黑棋 wpointcan2, //這個位置空,它的旁邊有兩個白棋 bpointcan1。即搜索棋盤,找出一個最佳點,放下黑棋。324計算機下棋但是現(xiàn)在我們并不能運行程序,因為有一個沒有定義的函數(shù),怎么辦呢?仔細看程序的話,你還會發(fā)現(xiàn)一個變量Cpoint vspoint,這是后來添加的它的用處是保存剛才白棋下的位置,有利于黑棋下棋時的定位。}由上面可知,我們對人對機游戲的方法是采用:人下完了之后,檢查是否勝利,是則結(jié)束游戲,重新開始,并改為黑棋(即計算機)先下;如果人沒有勝利,也改為計算機下。 colorwhite=true。 wzq[px][py]=1。 pDCBitBlt(px*20+32,py*20+32,160,160,amp。 colorwhite=false。 wzq[px][py]=1。 pDCBitBlt(px*20+32,py*20+32,160,160,amp。amp。 int py=()/20。amp。amp。amp。 //計算機下棋 puterdown()。 colorwhite=false。 wzq[px][py]=1。 pDCBitBlt(px*20+32,py*20+32,160,160,amp。amp。 int py=()/20。amp。amp。amp。t create DC)。 CDC Dc。由于下棋只是在OnLBut
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1