마린의 좌표, 비콘의 좌표를 구하여 marine_x, marine_y, beacon_x, beacon_y의 변수에 각각 저장합니다. 그리고 상대좌표를 구한 후 의미있는 값을 만든 후(좌표 X 10 / 63) state에 상태값을 저장합니다.
if global_step == 200 or distance < 0.3: done = True
if global_step == 200: reward = -1
if distance < 0.3: reward = 0
states = np.vstack([states, state])
next_states = np.vstack([next_states, next_state])
rewards = np.vstack([rewards, reward])
action = np.zeros(4)
action[act] = 1
actions_list = np.vstack([actions_list, action])
한 에피소드가 끝나는 조건입니다. 특정 시간이 지나거나 비콘에 다다랐을 경우 에피소드를 종료합니다. 에피소드가 특정 시간이 지나서 종료된 것(global_step == 200)과 비콘에 다다랐을 경우(distance < 0.3)을 정의하고 그에 맞는 Reward를 배정합니다. 스텝이 진행되면서 나온 현재 상태, 다음 상태, Reward, 행동 값을 저장합니다. choose_action에 의해 나온 행동 값은 0~3을 가지지만 학습에 필요한 형태인 one-hot vector형태로 바꾸어 action_list에 쌓습니다.