text: """manual keypress agent"""
  from tensorflow.python.keras.layers import Dense, Dropout
  
  from gym_env.env import Action
  
  
  class Player:
      """Mandatory class with the player methods"""
  
      def __init__(self, name='Custom_Q1'):
          """Initiaization of an agent"""
          self.equity_alive = 0
          self.actions = []
          self.last_action_in_stage = ''
          self.temp_stack = []
          self.name = name
          self.autoplay = True
  
      def initiate_agent(self, nb_actions):
          """initiate a deep Q agent"""
  
          self.model = Sequential()
          self.model.add(Dense(512, activation='relu', input_shape=env.observation_space))
          self.model.add(Dropout(0.2))
          self.model.add(Dense(512, activation='relu'))
          self.model.add(Dropout(0.2))
          self.model.add(Dense(512, activation='relu'))
          self.model.add(Dropout(0.2))
          self.model.add(Dense(nb_actions, activation='linear'))
  
          # Finally, we configure and compile our agent. You can use every built-in Keras optimizer and
          # even the metrics!
          memory = SequentialMemory(limit=memory_limit, window_length=window_length)
          policy = TrumpPolicy()
  
      def action(self, action_space, observation, info):  # pylint: disable=no-self-use
          """Mandatory method that calculates the move based on the observation array and the action space."""
          _ = (observation, info)  # not using the observation for random decision
          action = None
  
          # decide if explore or explot
  
          # forward
  
          # save to memory
  
          # backward
          # decide what to use for training
          # update model
          # save weights
  
          return action
  