1、 IOS 应用课程设计 手机连连看项目报告学 院 软件学院 年 级 2009 级 班 级 1 学 号 姓 名 2012 年 11 月 22 日1、项目内容:基于IOS的手机连连看应用图 1.连连看游戏详细过程流程图二主要代码部分+解释连连看的规则是两个相同图标要同时消掉的话,中间的连线只能是小于等于 3。两个图标,假设坐标分别为 A(x1,y1) ,B(x2,y2) ,代码如下:ChenkPathWithX1 andX2 throughY 表示检验在 y 这一行,x1 与 x2 之间是否有水果;有的话返回 yes,否则为 false;-(BOOL)checkPathWithX1:(int)x1
2、 andX2:(int)x2 throughY:(int)yfor (int i = x1+1; ix1if (self checkPathWithX1:x1 andX2:i+1 throughY:y1/这边的 i 就是在遍历每一列,i 可能小于 x1,可能大于 x1 小于 x2,也可能大于 x2;不同的情况下规则相应不太一样;如小于 x1 的情况下,传入 check 函数的检验参数是不一样的。 同样,我们也可以假设存在这样一个 y,使得 x1 这一列,y1 与 y 之间没有水果阻碍;使得在 x2 这一列,y2 与 y 之间没有水果阻碍;在 y 这一行,x1 与 x2 之间没有水果阻碍,如下图
3、A(x x1,y1)B(x2,y2)/Row 表示遍历每一行,i 可能小于 y1,可能大于 y2,也可能介于两者之间;不同情况下对应的 check 参数不一样。for (int i = 0; iy1if (self checkPathWithY1:y1 andY2:i+1 throughX:x1上面是需要 3 条线的情况,其他特殊情况下不需要那么多线就可以消掉水果;1. 如 y1 等于 y2 的情况下,if (x1=x2 else if (y1 = y2) if (y1 = 0) | (y1 = Row-1) return YES;/表示这两点位于第一行或最后一行,那样自然可以消掉else i
4、f (self checkPathWithX1:x1 andX2:x2 throughY:y1) return YES;/如果是在中间的行,只要中间没水果,也是可以连起来for (int i=0; iy1)if (self checkPathWithY1:y1 andY2:Row throughX:x1if (self checkPathWithY1:y1 andY2:i+1 throughX:x12. 如 x1 等于 x2 的情况下,else if (x1 = x2) if (x1=0)|(x1=Colum-1) /两点位于第一列或最后一列return YES;else if (self checkPathWithY1:y1 andY2:y2 throughX:x1) return YES;/两点之间没阻碍for (int i=0; ix1)if (self checkPathWithX1:x1 andX2:Colum throughY:y1if (self checkPathWithY1:y1-1 andY2:y2+1 throughX:i3任务分工本人负责图标寻址及是否可消除判断算法部分;图标素材寻找,界面设计,框架代码的编写及后期整合与测试由队友完成。