我是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++;
}