Я новичок в разработке IOS так вот мой вопрос,цикла инкрементации
им пытается реализовать простую игру боевого корабля и я вручную поместил мои корабли в allCoordinates массив, первый элемент координаты х, второй элемент - координата 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];
редактировать: я установил его, положив BOOL ishit после того, как цикл, и это фиксированная моя проблема
if(ishit==YES){
hit++;
}else {
missed++;
}
Почему вы не можете положить перерыв после пропущенного? –
Это не отвечает на ваш вопрос, но почему вы используете строки, содержащие числа, а не просто цифры? – trojanfoe
@GradyPlayer, когда я поставил перерыв после пропущенного завершения цикла после первой попытки, но он должен проверить все из них. – judge