def _convert_to_state()

in deployment/LambdaGateway/src/convert_utils.py [0:0]


    def _convert_to_state(self, game_state, game):
        
        # Get the border size
        if self.border_option == "1":
            border_size = 1
        elif self.border_option == "None":
            border_size = 0
        elif self.border_option == "max":
            border_size = int((21 - game.board_h)/2)
        else:
            raise ValueError("Unkown border_option {}".format(self.border_option))
            
        # Get the style of state
        if self.style == 'layered':
            channels = game.num_snakes+1
        elif self.style == 'one_versus_all':
            channels = 3
        else:
            raise ValueError("Unkown style {}".format(self.style))
        
        # Create the base state matrix
        state = np.zeros((game.board_h + 2*border_size, game.board_w + 2*border_size, channels))
        
        # Add the borders
        if self.border_option in ["1", "max"]:
            state = state - 1
            state[border_size:border_size+game.board_h, border_size:border_size+game.board_w,:] = 0
        
        # Put the food on the board
        for coord in game_state['board']['food']:
            state[coord['y']+border_size, coord['x']+border_size, BattlesnakeGame.FOOD_INDEX] = 1
                
        # Add the snakes
        for snake in game_state['board']['snakes']:
            first = True
            
            # Set the snakes channels to 2 if one vs all
            if self.style == 'one_versus_all':
                snake_channel = BattlesnakeGame.SNAKES_INDEX if game.snake_to_ids[snake['id']] != BattlesnakeGame.YOU_INDEX else BattlesnakeGame.YOU_INDEX
            else:
                snake_channel = game.snake_to_ids[snake['id']]
            for coord in snake['body']:
                if state[coord['y']+border_size, coord['x']+border_size, snake_channel] == 0:
                    state[coord['y']+border_size, coord['x']+border_size, snake_channel] = 5 if first else 1
                    first = False
                            
        return state