def __init__(<EOL>self,<EOL>mode=None,<EOL>source_game=None<EOL>):
<EOL>if mode is None:<EOL><INDENT>raise ValueError(<EOL>"<STR_LIT>"<EOL>)<EOL><DEDENT>if not isinstance(mode, GameMode):<EOL><INDENT>raise TypeError(<EOL>"<STR_LIT>"<EOL>)<EOL><DEDENT>self._key = None                    <EOL>self._status = None                 <EOL>self._ttl = None                    <EOL>self._answer = None                 <EOL>self._mode = None                   <EOL>self._guesses_remaining = None      <EOL>self._guesses_made = None           <EOL>if source_game:<EOL><INDENT>self.load(source=source_game)<EOL><DEDENT>else:<EOL><INDENT>self.new(mode=mode)<EOL><DEDENT>
Initialize a game object to hold the state, properties, and control of the game.

:param mode: <required> A GameMode object defining the game play mode.
:param source_game: <optional> A JSON Serialized representation of the game.