def __init__(self, players=None, board=None, logging='<STR_LIT>', pregame='<STR_LIT>', use_stdout=False):
self.observers = set()<EOL>self.undo_manager = undoredo.UndoManager()<EOL>self.options = {<EOL>'<STR_LIT>': pregame,<EOL>}<EOL>self.players = players or list()<EOL>self.board = board or catan.board.Board()<EOL>self.robber = catan.pieces.Piece(catan.pieces.PieceType.robber, None)<EOL>if logging == '<STR_LIT>':<EOL><INDENT>self.catanlog = catanlog.CatanLog(use_stdout=use_stdout)<EOL><DEDENT>else:<EOL><INDENT>self.catanlog = catanlog.NoopCatanLog()<EOL><DEDENT>self.state = None <EOL>self.dev_card_state = None <EOL>self._cur_player = None <EOL>self.last_roll = None <EOL>self.last_player_to_roll = None <EOL>self._cur_turn = <NUM_LIT:0> <EOL>self.robber_tile = None <EOL>self.board.observers.add(self)<EOL>self.set_state(catan.states.GameStateNotInGame(self))<EOL>self.set_dev_card_state(catan.states.DevCardNotPlayedState(self))<EOL>
Create a Game with the given options.

:param players: list(Player)
:param board: Board
:param logging: (on|off)
:param pregame: (on|off)
:param use_stdout: bool (log to stdout?)