code: def get_ship_feature(board, ship):
      me = board.current_player
      size = board.configuration.size
  
      ship_features = np.zeros(
          config["ship_obs_dim"] + config["world_dim"]
      )
  
      # player halite
      ship_features[0] = me.halite / 50
  
      # halite distance
      ship_features[1] = (me.halite - board.opponents[0].halite) / 50
  
      # ship_position
      ship_features[2] = (size - ship.position[1] - 1) / size
      ship_features[3] = ship.position[0] / size
  
      # ship_cargo
      ship_features[4] = ship.halite / 50
  
      # current step
      ship_features[5] = board.step / 300
  
      world_feature = get_world_feature(board)
  
      distance_map = get_distance_map(ship.position)
  
      cnn_feature = np.concatenate(
          (world_feature, distance_map), axis=0
      )
  
      cnn_feature = cnn_feature.reshape((-1))
  
      ship_features[6:] = cnn_feature
  
      return ship_features.reshape((1, -1))
  
imports: import pickle
  import base64
  import random
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.distributions import Categorical
  from zerosum_env.envs.halite.helpers import *
  from zerosum_env import make, evaluate
  from collections import deque
  import os
label_desc: Use image node_id 3 for calling a global function with example usage: get_ship_feature(board, ship) and returns: ship_features