No I mean case as in the state a square can be. It can either be X, O, or empty (default). This appears as three cases. However, since empty is the default case, and for purposes of determining occupation by itself X or O is irrelevant, you really only have one state which is different from default.
Basically any square that hasn't had a move on it is already open, all squares start open, so it is more efficient to exclude squares as they are used rather than figuring if they are allowed beforehand. If it hasn't been used before then it definitely is allowed by default.