def _initNew( self, player1, player2 ): ## Create empty board self.board = Board() ## Save player info self.player1 = int( player1 ) self.player2 = int( player2 ) ## Save status self.status = "CHALLENGE" self.winner = None self.turn = 1 ## Create new Game instance self.game = Game( player1 = self.player1, player2 = self.player2, status = self.status, board = self.board.serialize(), turn = self.turn, winner = self.winner, parent = Game.games_key() ) ## Save new game to database key = self.game.put() self.gameid = key.id() ## Send an email to player 2 player1_name = User.get_user_name( self.player1 ) player2_user = User.by_id( self.player2 ) HexEmail.sendChallenge( player2_user.email, player1_name )
def _get_pending( self, user_id ): parent = Game.games_key() waiting = Game.all().filter('player1 =', user_id ).filter( "status =", "CHALLENGE" ).ancestor( parent ).fetch( limit = 10 ) waiting = list( waiting ) waiting_games = self._build_game_set( waiting ) pending = Game.all().filter('player2 =', user_id ).filter( "status =", "CHALLENGE" ).ancestor( parent ).fetch( limit = 10 ) pending = list( pending ) pending_games = self._build_game_set( pending ) return waiting_games, pending_games
def _get_finished( self, user_id ): parent = Game.games_key() games1 = Game.all().filter('player1 =', user_id ).filter( "status =", "COMPLETE" ).ancestor( parent ).fetch( limit = 10 ) games2 = Game.all().filter('player2 =', user_id ).filter( "status =", "COMPLETE" ).ancestor( parent ).fetch( limit = 10 ) games = list( games1 ) + list( games2 ) return self._build_game_set( games )