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

正文內容

職工管理系統(tǒng)課程設計報告-資料下載頁

2025-04-11 22:59本頁面
  

【正文】 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)電腦下子模塊電腦下子模塊主要用于使人機對戰(zhàn)中電腦這方具有一定智能,具備對奕能力。主要函數是:void AI(int *p,int *q)核心算法如下:void AI(int *p,int *q) /* 電腦下子 *p *q返回下子坐標 */{ int i,j,k,max=0,I,J。 /* I J為下點坐標 */ for(j=0。j15。j++) for(i=0。i15。i++)if(qipan[j][i]==SPA){ /* 歷遍棋盤,遇到空點則計算價值,取最大價值點下子。 */ k=value(i,j)。 if(k=max) { I=i。 J=j。 max=k。 } } *p=I。 *q=J。}(6)計算下子價值模塊電腦下子是在估算每個空點的總權值的基礎上通過比較決定的,這就需要計算下子價值模塊。主要函數是:int value(int p,int q)核心算法如下:int value(int p,int q) /* 計算空點p q的價值 以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}。 /* 數組a中儲存己方和對方共32種棋型的值 己方0對方1 活0沖1空活2空沖3 子數03(0表示1個子,3表示4個子) */ while(n!=5){ k1=qixing(n,p,q)。 n+=4。 /* k1,k2為2個反方向的棋型編號 */ k2=qixing(n,p,q)。 n=3。 if(k1k2) { temp=k1。 k1=k2。 k2=temp。 }/* 使編號小的為k1,大的為k2 */ K1=k1。 K2=k2。 /* K1 K2儲存k1 k2的編號 */ 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對方1 活0沖1空活2空沖3 子數03(0表示1個子,3表示4個子) */ 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)))){ /* 己活己活 己活己沖 對活對活 對活對沖 的棋型賦值*/ 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))){ /* 己沖己沖 對沖對沖 的棋型賦值*/ 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)))){ /* 己活對活 己活對沖 己沖對活 己沖對沖 的棋型賦值*/ 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)棋型模塊棋型模塊是估算各個空點的權值的基礎,為此本程序定義了35種棋型的權值本程序中的棋型均為本人自定義?!癖硎就婕业钠遄樱虮硎倦娔X的棋子。以下稱電腦方為己方,玩家方為對方。從一空點向某一方向判斷該方向的棋型。某一方向指18方向 從右順時針開始數。(1) 空棋型。從一空點向一方向看連續(xù)2個為空的棋型??掌逍凸?種。 如圖,從左端的空點向右看會發(fā)現有連續(xù)2個空點。(2) 活棋型。2端無擋的棋型為活棋型?;钇逍凸?種:己方4種,對方4種。 左圖為 己活3 。從左端的空點向右看會發(fā)現己方有連續(xù)的3個子,且右端無擋。故該點的1方向為己活3。 左圖為 對活2(3) 沖棋型。1端無擋的棋型為沖棋型。沖棋型共9種:己方4種,對方4種,邊界1種。左圖為邊界沖棋型??拯c的右端為邊界。 或 左圖為 己沖2。從左端的空點向右看會發(fā)現己方有連續(xù)的2個子,且右端有擋(此處有擋表示有對方的子或為邊界)。故該點的1方向為己沖2。 左圖為 對沖4。(4) 空活棋型。從一空點向一方向看有1個空點,繼續(xù)看有己方或對方的活棋型??栈钇逍凸?種:己方4種,對方4種。左圖為 己空活2。從左端的空點向右看有1個空點,繼續(xù)看會發(fā)現己方有連續(xù)的2個子,且右端無擋。故該點的1方向為己空活2。左圖為 對空活1。(5) 空沖棋型。從一空點向一方向看有1個空點,繼續(xù)看有己方或對方或邊界沖棋型??諞_棋型共9種:己方4種,對方4種,邊界1種。 左圖為邊界空沖棋型。空點的右端為空點再右看為邊界。 或左圖為 己空沖2。從左端的空點向右看有1個空點,繼續(xù)看會發(fā)現己方有連續(xù)的2個子,且右端有擋。故該點的1方向為己空沖2。主要函數是:int qixing(int n,int p,int q)核心算法如下:int qixing(int n,int p,int q) /* 返回空點p q在n方向上的棋型號 n為18方向 從右順時針開始數 */ { int k,m=0。 /* 棋型號注解: 己活000003 己沖010013 對活100103 對沖110113 己空活020023 己空沖030033 對空活120123 對空沖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。 /* 己方沖棋型 */ }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。 /* 對方活棋型 */ else k=m+109。 /* 對方沖棋型 */ }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。 /* 對方空活棋型 */ else k=m+129。 /* 對方空沖棋型 */ }break。 case SPA: k=1。break。 /* 空棋型 */ } }break。 } return k。}(8)移位模塊移位模塊主要用于改變判斷點的地址,在判斷勝負模塊和棋型模塊中都要用到主要函數是:void yiwei(int n,int *i,int *j)核心算法如下:void yiwei(int n,int *i,int *j) /* 在n方向上對坐標 i j 移位 n為18方向 從右順時針開始數 */{ 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。 }}四、調試分析 本程序難點在于判斷勝
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1