私はiOS開発の初心者なので、ここに私の質問があります.
シンプルな戦艦ゲームを実装しようとしていて、船を allCoordinates 配列に手動で配置しました。最初の要素は x 座標、2 番目の要素は y 座標、3 番目の要素は船のサイズです。
問題は; ヒットとミスは試行ごとに1回だけ増やす必要がありますが、ユーザーが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++;
}