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

正文內(nèi)容

職工管理系統(tǒng)課程設(shè)計(jì)報(bào)告-資料下載頁(yè)

2025-04-11 22:59本頁(yè)面
  

【正文】 m==5) return 1。 yiwei(n,amp。p,amp。q)。 if(p0||p14||q0||q14) break。 } n=3。 p=P。 q=Q。 /* 不成功則判斷下一組方向 */ } return 0。}(5)電腦下子模塊電腦下子模塊主要用于使人機(jī)對(duì)戰(zhàn)中電腦這方具有一定智能,具備對(duì)奕能力。主要函數(shù)是:void AI(int *p,int *q)核心算法如下:void AI(int *p,int *q) /* 電腦下子 *p *q返回下子坐標(biāo) */{ int i,j,k,max=0,I,J。 /* I J為下點(diǎn)坐標(biāo) */ for(j=0。j15。j++) for(i=0。i15。i++)if(qipan[j][i]==SPA){ /* 歷遍棋盤(pán),遇到空點(diǎn)則計(jì)算價(jià)值,取最大價(jià)值點(diǎn)下子。 */ k=value(i,j)。 if(k=max) { I=i。 J=j。 max=k。 } } *p=I。 *q=J。}(6)計(jì)算下子價(jià)值模塊電腦下子是在估算每個(gè)空點(diǎn)的總權(quán)值的基礎(chǔ)上通過(guò)比較決定的,這就需要計(jì)算下子價(jià)值模塊。主要函數(shù)是:int value(int p,int q)核心算法如下:int value(int p,int q) /* 計(jì)算空點(diǎn)p q的價(jià)值 以k返回 */ { int n=1,k=0,k1,k2,K1,K2,X1,Y1,Z1,X2,Y2,Z2,temp。 int a[2][4][4]={40,400,3000,10000,6,10,600,10000,20,120,200,0,6,10,500,0,30,300,2500,5000,2,8,300,8000,26,160,0,0,4,20,300,0}。 /* 數(shù)組a中儲(chǔ)存己方和對(duì)方共32種棋型的值 己方0對(duì)方1 活0沖1空活2空沖3 子數(shù)03(0表示1個(gè)子,3表示4個(gè)子) */ while(n!=5){ k1=qixing(n,p,q)。 n+=4。 /* k1,k2為2個(gè)反方向的棋型編號(hào) */ k2=qixing(n,p,q)。 n=3。 if(k1k2) { temp=k1。 k1=k2。 k2=temp。 }/* 使編號(hào)小的為k1,大的為k2 */ K1=k1。 K2=k2。 /* K1 K2儲(chǔ)存k1 k2的編號(hào) */ Z1=k1%10。 Z2=k2%10。 k1/=10。 k2/=10。 Y1=k1%10。 Y2=k2%10。 k1/=10。 k2/=10。 X1=k1%10。 X2=k2%10。 /* X Y Z分別表示 己方0對(duì)方1 活0沖1空活2空沖3 子數(shù)03(0表示1個(gè)子,3表示4個(gè)子) */ if(K1==1) { if(K20) { k+=0。continue。 } else k+=a[X2][Y2][Z2]+5。 continue。 }。 /* 空棋型and其他 */ if(K1==2) { if(K20) { k+=0。continue。 } else k+=a[X2][Y2][Z2]/2。continue。 }。 /* 邊界沖棋型and其他 */ if(K1==3) { if(K20) { k+=0。 continue。 } else k+=a[X2][Y2][Z2]/3。 continue。 }。 /* 邊界空沖棋型and其他 */ if(((K11amp。amp。K14)amp。amp。((K21amp。amp。K24)||(K29amp。amp。K214)))||((K199amp。amp。K1104)amp。amp。((K299amp。amp。K2104)||(K2109amp。amp。K2114)))){ /* 己活己活 己活己沖 對(duì)活對(duì)活 對(duì)活對(duì)沖 的棋型賦值*/ if(Z1+Z2=2) { k+=a[X2][Y2][3]。 continue。 } else { k+=a[X2][Y2][Z1+Z2+1]。 continue。 } } if(((K19amp。amp。K114)amp。amp。(K29amp。amp。K214))||((K1109amp。amp。K1114)amp。amp。(K2109amp。amp。K2114))){ /* 己沖己沖 對(duì)沖對(duì)沖 的棋型賦值*/ if(Z1+Z2=2) { k+=10000。 continue。 } else { k+=0。 continue。 } } if(((K11amp。amp。K14)amp。amp。((K299amp。amp。K2104)||(K2109amp。amp。K2114)))||((K19amp。amp。K114)amp。amp。((K299amp。amp。K2104)||(K2109amp。amp。K2114)))){ /* 己活對(duì)活 己活對(duì)沖 己沖對(duì)活 己沖對(duì)沖 的棋型賦值*/ if(Z1==3||Z2==3) { k+=10000。 continue。 } else { k+=a[X2][Y2][Z2]+a[X1][Y1][Z1]/4。 continue。 } } else { k+=a[X1][Y1][Z1]+a[X2][Y2][Z2]。 continue。 } /* 其他棋型的賦值 */ } return k。}(7)棋型模塊棋型模塊是估算各個(gè)空點(diǎn)的權(quán)值的基礎(chǔ),為此本程序定義了35種棋型的權(quán)值本程序中的棋型均為本人自定義?!癖硎就婕业钠遄?,◎表示電腦的棋子。以下稱(chēng)電腦方為己方,玩家方為對(duì)方。從一空點(diǎn)向某一方向判斷該方向的棋型。某一方向指18方向 從右順時(shí)針開(kāi)始數(shù)。(1) 空棋型。從一空點(diǎn)向一方向看連續(xù)2個(gè)為空的棋型。空棋型共1種。 如圖,從左端的空點(diǎn)向右看會(huì)發(fā)現(xiàn)有連續(xù)2個(gè)空點(diǎn)。(2) 活棋型。2端無(wú)擋的棋型為活棋型?;钇逍凸?種:己方4種,對(duì)方4種。 左圖為 己活3 。從左端的空點(diǎn)向右看會(huì)發(fā)現(xiàn)己方有連續(xù)的3個(gè)子,且右端無(wú)擋。故該點(diǎn)的1方向?yàn)榧夯?。 左圖為 對(duì)活2(3) 沖棋型。1端無(wú)擋的棋型為沖棋型。沖棋型共9種:己方4種,對(duì)方4種,邊界1種。左圖為邊界沖棋型。空點(diǎn)的右端為邊界。 或 左圖為 己沖2。從左端的空點(diǎn)向右看會(huì)發(fā)現(xiàn)己方有連續(xù)的2個(gè)子,且右端有擋(此處有擋表示有對(duì)方的子或?yàn)檫吔纾9试擖c(diǎn)的1方向?yàn)榧簺_2。 左圖為 對(duì)沖4。(4) 空活棋型。從一空點(diǎn)向一方向看有1個(gè)空點(diǎn),繼續(xù)看有己方或?qū)Ψ降幕钇逍汀?栈钇逍凸?種:己方4種,對(duì)方4種。左圖為 己空活2。從左端的空點(diǎn)向右看有1個(gè)空點(diǎn),繼續(xù)看會(huì)發(fā)現(xiàn)己方有連續(xù)的2個(gè)子,且右端無(wú)擋。故該點(diǎn)的1方向?yàn)榧嚎栈?。左圖為 對(duì)空活1。(5) 空沖棋型。從一空點(diǎn)向一方向看有1個(gè)空點(diǎn),繼續(xù)看有己方或?qū)Ψ交蜻吔鐩_棋型。空沖棋型共9種:己方4種,對(duì)方4種,邊界1種。 左圖為邊界空沖棋型??拯c(diǎn)的右端為空點(diǎn)再右看為邊界。 或左圖為 己空沖2。從左端的空點(diǎn)向右看有1個(gè)空點(diǎn),繼續(xù)看會(huì)發(fā)現(xiàn)己方有連續(xù)的2個(gè)子,且右端有擋。故該點(diǎn)的1方向?yàn)榧嚎諞_2。主要函數(shù)是:int qixing(int n,int p,int q)核心算法如下:int qixing(int n,int p,int q) /* 返回空點(diǎn)p q在n方向上的棋型號(hào) n為18方向 從右順時(shí)針開(kāi)始數(shù) */ { int k,m=0。 /* 棋型號(hào)注解: 己活000003 己沖010013 對(duì)活100103 對(duì)沖110113 己空活020023 己空沖030033 對(duì)空活120123 對(duì)空沖130133 空1 邊界沖2 邊界空沖3*/ yiwei(n,amp。p,amp。q)。 if(p0||p14||q0||q14) k=2。 /* 邊界沖棋型 */ switch(qipan[q][p]){ case COM:{ m++。 yiwei(n,amp。p,amp。q)。 if(p0||p14||q0||q14) { k=m+9。 return k。 } while(qipan[q][p]==COM) { m++。 yiwei(n,amp。p,amp。q)。 if(p0||p14||q0||q14) { k=m+9。 return k。 } } if(qipan[q][p]==SPA) k=m1。 /* 己方活棋型 */ else k=m+9。 /* 己方?jīng)_棋型 */ }break。 case MAN:{ m++。 yiwei(n,amp。p,amp。q)。 if(p0||p14||q0||q14) { k=m+109。 return k。 } while(qipan[q][p]==MAN) { m++。 yiwei(n,amp。p,amp。q)。 if(p0||p14||q0||q14) { k=m+109。 return k。 } } if(qipan[q][p]==SPA) k=m+99。 /* 對(duì)方活棋型 */ else k=m+109。 /* 對(duì)方?jīng)_棋型 */ }break。 case SPA:{ yiwei(n,amp。p,amp。q)。 if(p0||p14||q0||q14) { k=3。 return k。 } /* 邊界空沖棋型 */ switch(qipan[q][p]){ case COM:{ m++。 yiwei(n,amp。p,amp。q)。 if(p0||p14||q0||q14) { k=m+29。 return k。 } while(qipan[q][p]==COM) { m++。 yiwei(n,amp。p,amp。q)。 if(p0||p14||q0||q14) { k=m+29。 return k。 } } if(qipan[q][p]==SPA) k=m+19。 /* 己方空活棋型 */ else k=m+29。 /* 己方空沖棋型 */ }break。 case MAN:{ m++。 yiwei(n,amp。p,amp。q)。 if(p0||p14||q0||q14) { k=m+129。 return k。 } while(qipan[q][p]==MAN) { m++。 yiwei(n,amp。p,amp。q)。 if(p0||p14||q0||q14) { k=m+129。 return k。 } } if(qipan[q][p]==SPA) k=m+119。 /* 對(duì)方空活棋型 */ else k=m+129。 /* 對(duì)方空沖棋型 */ }break。 case SPA: k=1。break。 /* 空棋型 */ } }break。 } return k。}(8)移位模塊移位模塊主要用于改變判斷點(diǎn)的地址,在判斷勝負(fù)模塊和棋型模塊中都要用到主要函數(shù)是:void yiwei(int n,int *i,int *j)核心算法如下:void yiwei(int n,int *i,int *j) /* 在n方向上對(duì)坐標(biāo) i j 移位 n為18方向 從右順時(shí)針開(kāi)始數(shù) */{ switch(n){ case 1: *i+=1。 break。 case 2: *i+=1。 *j+=1。 break。 case 3: *j+=1。 break。 case 4: *i=1。 *j+=1。 break。 case 5: *i=1。 break。 case 6: *i=1。 *j=1。 break。 case 7: *j=1。 break。 case 8: *i+=1。 *j=1。 break。 }}四、調(diào)試分析 本程序難點(diǎn)在于判斷勝
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1