QQ连连看外挂核心算法(检测点对点)
bool CheckLine (POINT p1,POINT p2) { int x,y,t; //如果x轴相同 如果y轴相同 有一点为空 另一点为空 if ((p1.x==p2.x)&&(p1.y==p2.y)&&(chessdata[p1.y][p1.x]==0)&&(chessdata[p2.y][p2.x]==0)) {return turn;} // 如果p1轴小于0 大于18 或 p2轴小于0 大于18 else if((p1.x<0) || (p1.x>18) || (p1.y<0) || (p1.y>10) || (p2.x<0) || (p2.x>18) || (p2.y<0) || (p2.y>10)) {return false;} if(p1.x==p2.x) //如果一点与另一点X轴相同 { if(p1.y>p2.y) //如果一高一低,(如果判断的棋子到了下方,结果上方有一样的,就接着从上面的棋子开始判断) {t=p1.y;p1.y=p2.y;p2.y=t;} //交换p1和p2的y值 //如果上述未成立,就执行下面 for(y=p1.y;y<=p2.y;y++) //X轴相同就遍历y轴,也就是p1的下方是否有棋子挡道 { if(chessdata[y][p1.x]!=0){return false;}//如果p1下方有东西,就没法直连 } } if(p1.y==p2.y) //如果p1与p2Y轴相同 { if(p1.x>p2.x) //如果一前一后,(如果判断的棋子的后方,结果前方有一样的,就接着从前方开始判断) {t=p1.x;p1.x=p2.x;p2.x=t;} for(x=p1.x;x<p2.x;x++) //向后遍历x轴,就是判断p1后方是否有棋子挡道 { if(chessdata[p1.y][x]!=0){return false;} //如果p1后方有东西就不能直连 } } return true; //如果能执行到此步骤,绝对可以直接连接了(一条线的) }
版权声明:本文为rogee原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。