我在iOS開發初學者所以這裏是我的問題,for循環遞增
我嘗試實現一個簡單的戰艦比賽,我手動把我的船到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];
編輯:我固定它通過把一個BOOL ishit後的for循環,它固定我的問題
if(ishit==YES){
hit++;
}else {
missed++;
}
爲什麼不能在錯過之後放假? –
這並不回答你的問題,但你爲什麼使用包含數字而不僅僅是數字的字符串? – trojanfoe
@GradyPlayer當我第一次嘗試之後錯過了循環停止之後放置了休息,但它必須檢查所有這些。 – judge