《面向对象程序设计》(10)
时间:2025-04-20
时间:2025-04-20
if(line(chessboard,4,x,y,color)+line(chessboard,5,x,y,color)>3) return true; if(line(chessboard,6,x,y,color)+line(chessboard,7,x,y,color)>3) return true; return false; }
//--------------------------------AI部分----------------------------------
int attacktrend,defenttrend; // 攻击防御平衡权值
bool macth1(NODE chessboard[][15], int x, int y, int dirt, int kind, int color)
{/* 匹配在颜色为color的点(x,y),在dirt方向上的第kind种防守棋形,成功返回true,否则返回false */ int k; char c; char *p; p=strchr(qx1[kind].qx,'x'); for(k=0;k<=p-qx1[kind].qx;k++) { x-=direction[dirt][0]; y-=direction[dirt][1]; } for(k=0;(unsigned)k<strlen(qx1[kind].qx);k++) { x+=direction[dirt][0]; y+=direction[dirt][1]; if(!inside(x,y)) return(false); if(chessboard[x][y].step>0 && chessboard[x][y].color==color) c='2'; else if(chessboard[x][y].step>0) c='1'; else c='0'; if(c=='0' && qx1[kind].qx[k]=='x') continue; if(c!=qx1[kind].qx[k]) return(false); } return true; }
int value_qx1(NODE chessboard[][15], int x, int y, int dirt, int color) {// 计算颜色为color的点8个方向上的防守权值之和 int i; for(i=0;i<qx1_num;i++) if(macth1(chessboard,x,y,dirt,i,color)) return qx1[i].value; return 0; }
bool macth2(NODE chessboard[][15], int x, int y, int dirt, int kind, int color)
{/* 匹配在颜色为color的点(x,y),在dirt方向上的第kind种进攻棋形,成功返回true,否则返回false */ int k; char c;
上一篇:小学语文自主学习阅读教学模式设计
下一篇:2021元旦快乐校园演讲稿