code: import numpy as np
  from collections import defaultdict
  
  class Agent:
  
      def __init__(self, nA=6):
          """
          Initialize agent.
  
          Params
          ======
          nA: number of actions available to the agent
          """
          self.nA = nA
          self.Q = defaultdict(lambda: np.zeros(self.nA))
  
      def select_action(self, state):
          """
          Given the state, select an action.
  
          Params
          ======
          state: the current state of the environment
  
          Returns
          =======
          action: an integer, compatible with the task's action space
          """
          return np.random.choice(self.nA)
  
      def step(self, state, action, reward, next_state, done):
          """
          Update the agent's knowledge, using the most recently sampled tuple.
  
          Params
          ======
          state: the previous state of the environment
          action: the agent's previous choice of action
          reward: last reward received
          next_state: the current state of the environment
          done: whether the episode is complete (True or False)
          """
          self.Q[state][action] += 1
  
apis: numpy.random.choice numpy.zeros