A minor question, isn't declaring a new variable, assigning it, simply slowing down the loop?
Yes that is pretty counterintuitive since MAX_PLAYERS is a constant anyway. It would make sense if 'j' was to store the return value of a function call in order to save the function from being called each iteration.