text: import scipy
  import numpy as np
  
  from lib.agent.base import HWAgent
  
  def prepro(o,image_size=[80, 80]):
      """
      Call this function to preprocess RGB image to grayscale image if necessary
      This preprocessing code is from
          https://github.com/hiwonjoon/tf-a3c-gpu/blob/master/async_agent.py
      
      Input: 
      RGB image: np.array
          RGB screen of game, shape: (210, 160, 3)
      Default return: np.array 
          Grayscale image, shape: (80, 80, 1)
      
      """
      y = o.astype(np.uint8)
      resized = scipy.misc.imresize(y, image_size)
      return np.expand_dims(resized.astype(np.float32), axis = 2)
  
  class HWAgent_PG(HWAgent):
      def __init__(self, env, args):
          """
          Initialize every things you need here.
          For example: building your model
          """
  
          super(HWAgent_PG,self).__init__(env)
  
          if args.test_pg:
              #you can load your model here
              print('loading trained model')
  
          ##################
          # YOUR CODE HERE #
          ##################
  
  
      def init_game_setting(self):
          """
          Testing function will call this function at the begining of new game
          Put anything you want to initialize if necessary
          """
          ##################
          # YOUR CODE HERE #
          ##################
          pass
  
  
      def train(self):
          """
          Implement your training algorithm here
          """
          ##################
          # YOUR CODE HERE #
          ##################
          pass
  
  
      def make_action(self, observation, test=True):
          """
          Return predicted action of your agent
          Input:
              observation: np.array
                  current RGB screen of game, shape: (210, 160, 3)
          Return:
              action: int
                  the predicted action from trained model
          """
          ##################
          # YOUR CODE HERE #
          ##################
          return self.env.get_random_action()
  
  
  