- (int)getWinningRow { if (gameFinished) { if ([self isWinningIndex:GridIndex(0,0)] && [self isWinningIndex:GridIndex(1,0)] && [self isWinningIndex:GridIndex(2,0)]) return 0; if ([self isWinningIndex:GridIndex(0,1)] && [self isWinningIndex:GridIndex(1,1)] && [self isWinningIndex:GridIndex(2,1)]) return 1; if ([self isWinningIndex:GridIndex(0,2)] && [self isWinningIndex:GridIndex(1,2)] && [self isWinningIndex:GridIndex(2,2)]) return 2; if ([self isWinningIndex:GridIndex(0,0)] && [self isWinningIndex:GridIndex(0,1)] && [self isWinningIndex:GridIndex(0,2)]) return 3; if ([self isWinningIndex:GridIndex(1,0)] && [self isWinningIndex:GridIndex(1,1)] && [self isWinningIndex:GridIndex(1,2)]) return 4; if ([self isWinningIndex:GridIndex(2,0)] && [self isWinningIndex:GridIndex(2,1)] && [self isWinningIndex:GridIndex(2,2)]) return 5; if ([self isWinningIndex:GridIndex(0,0)] && [self isWinningIndex:GridIndex(1,1)] && [self isWinningIndex:GridIndex(2,2)]) return 6; if ([self isWinningIndex:GridIndex(2,0)] && [self isWinningIndex:GridIndex(1,1)] && [self isWinningIndex:GridIndex(0,2)]) return 7; return -1; } else { return -1; } }