class_docstr: Controller.`
  Keep Track of each ship and shipyard
class_docstr_tok: ["Controller.","`","Keep","Track","of","each","ship","and","shipyard"]
docstr: Reset parameters
  Args:
      board : the environment 
code: def reset(self, board):
      """Reset parameters
      Args:
          board : the environment
      """
      self.init = True
      self.board = board
  
      player = board.current_player
  
      self.ship_states = {}
  
      for ship_id in player.ship_ids:
          # keep track of the status of each ship
          # obs, act, rew, terminal, value, log_prob are the common data we need to record
          # rule indicates whether this ship is controlled by defined rules
          # full_episode indicates the experience collected by this ship is compelete or not
          # halite saves the number of cargo this ship collects
          self.ship_states[ship_id] = {
              "obs": [],
              "act": [],
              "rew": [],
              "terminal": [],
              "value": [],
              "log_prob": [],
              "rule": False,
              "full_episode": False,
              "halite": [],
          }
  
      self.ship_rew = []
      self.ship_len = []
  
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 4 for calling the Controller obj's underlying member method code with example usage: obj.reset(board) without return types