0

次のコードがあります。

- (NSArray *)checkNormalGameDuelAndMatch:(float)nrDuelQs andNrQPerDuel:(float)nrQPerDuel andNrMatchQ:(float)nrMatchQ andActivePlayer:(float)actPlayerNrQ andInactivePlayer:(float)inactivePlayerNrQ {
NSLog(@"checkNormalGameDuelAndMatch:");

// Check for Matches and Duels to prep for swaps and/or match endings
NSArray *theCheckArray = [[NSArray alloc]init];
NSLog(@"nrDuelQs: %.0f / nrQPerDuel: %.0f", nrDuelQs, nrQPerDuel);
// Check if Match still on
NSLog(@"actPlayerNrQ: %.0f / inactivePlayerNrQ: %.0f / nrMatchQ: %.0f", actPlayerNrQ, inactivePlayerNrQ, nrMatchQ);
if (actPlayerNrQ < nrMatchQ && inactivePlayerNrQ < nrMatchQ) {
    // Match is still on
    _isMatchStillOn = YES;

    // Check if Duel is till on
    if (nrDuelQs < nrQPerDuel) {
        // Duel is still on
        _isDuelStillOn = YES;
        NSLog(@"_isDuelStillOn = YES;");
    }
    else {
        _isDuelStillOn = NO;
        NSLog(@"_isDuelStillOn = NO;");
    }
}
else {
    //==MATCH IS OVER==//
    _isMatchStillOn = NO;
    NSLog(@"MATCH OFF");
}

theCheckArray = @[[NSNumber numberWithBool:_isDuelStillOn], [NSNumber numberWithBool:_isMatchStillOn]];
return theCheckArray;
}

次の NSLog 出力では、2 つのループ中:

checkNormalGameDuelAndMatch:
nrDuelQs: 4 / nrQPerDuel: 5
actPlayerNrQ: 4 / inactivePlayerNrQ: 0 / nrMatchQ: 5
_isDuelStillOn = YES;
checkNormalGameDuelAndMatch:
nrDuelQs: 5 / nrQPerDuel: 5
actPlayerNrQ: 5 / inactivePlayerNrQ: 0 / nrMatchQ: 5
MATCH OFF

「MATCH OFF」が来るとは思わないので、Ifステートメントと「&&」に何か問題があると思います。

これは複雑であってはならないので、私は盲目だと思います。

4

1 に答える 1