code: def add_random_tile(self):
          
  
          x_pos, y_pos = np.where(self._state == 0)
          assert len(x_pos) != 0
          empty_index = np.random.choice(len(x_pos))
          value = np.random.choice([1, 2], p=[0.9, 0.1])
  
          self._state[x_pos[empty_index], y_pos[empty_index]] = value
docs: Adds a random tile to the grid. Assumes that it has empty fields.