用于循环增量

时间:2013-07-08 13:53:16

标签: iphone ios objective-c

我是iOS开发的初学者,所以这是我的问题,

我试图实现一个简单的战舰游戏,我手动将我的船只放入allCoordinates数组,第一个元素是x坐标,第二个元素是y坐标,第三个元素是船的大小。

问题是;每次尝试都必须增加一次命中和错过,但是当用户进入第6次时,命中变为1并且因为循环继续检查每一行并且增加未命中而错过了5次。

我不能在错过的++之后休息一下,所以我在这里没有想法。

谢谢你:

for ( int i=0 ;i<19;i++ ){


    if ([self.xCoordinate.text isEqualToString:[allCoordinates objectAtIndex:i*3]] && 
        [self.yCoordinate.text isEqualToString:[allCoordinates objectAtIndex:i*3+1]] )

    {



        NSLog(@"hit");

        hit++;

        result.text = [NSString stringWithFormat:@"You hit %ix1 ship",[allCoordinates objectAtIndex:i*3+2]];

        break;
    }else {

        NSLog(@"not hit");
       result.text = [NSString stringWithFormat:@"You missed"];


        missed++;

    }

hitLabel.text = [NSString stringWithFormat:@"%i!",hit];

missed = missed%18;

missedLabel.text = [NSString stringWithFormat:@"%i!",missed];

这是我的数组

allCoordinates = [[NSArray alloc] initWithObjects:
                          @"15",@"2",@"3",
                          @"13",@"2",@"3",
                          @"14",@"2",@"3",
                  @"10",@"7",@"3",
                  @"11",@"7",@"3",
                  @"12",@"7",@"3",
                    @"16",@"8",@"3",
                    @"16",@"9",@"3",
                    @"16",@"10",@"3",
                          @"3",@"4",@"4",
                          @"4",@"4",@"4",
                          @"5",@"4",@"4",
                          @"6",@"4",@"4",
                  @"9",@"10",@"4",
                  @"9",@"11",@"4",
                  @"9",@"12",@"4",
                  @"9",@"13",@"4",
                          @"5",@"14",@"1",
                          @"18",@"17",@"1",
                            nil];

编辑:我通过在for循环之后放置一个BOOL ishit修复它并解决了我的问题

   if(ishit==YES){

    hit++;

}else {
    missed++;
}

1 个答案:

答案 0 :(得分:2)

如果您对点击感兴趣,请计算循环中的点击次数。不计算未命中数。无论如何,计数似乎无关紧要,所以如果有任何事情被击中,只需使用BOOL。在循环之后,如果有任何命中,则设置命中文本。如果没有,所有都是未命中,你应该设置未命中文本。