int main() { std::cout << "cli_terminal_example start" << std::endl; check_terminal(); termios old_attrs = get_term_attrs(); termios new_attrs = construct_noncanon_mode(old_attrs); set_term_attrs(new_attrs); check_noncanon_mode(); main_loop(); set_term_attrs(old_attrs); std::cout << "cli_terminal_example finish" << std::endl; return 0; }
const reward_observation_terminal_t *env_step(const action_t *this_action) { /* Make sure the action is valid */ assert(this_action->numInts==1); assert(this_action->intArray[0]>=0); assert(this_action->intArray[0]<4); updatePosition(&the_world,this_action->intArray[0]); this_reward_observation.observation->intArray[0] = calculate_flat_state(the_world); this_reward_observation.reward = calculate_reward(the_world); this_reward_observation.terminal = check_terminal(the_world.agentRow,the_world.agentCol); return &this_reward_observation; }
/* Sets state and returns 1 if valid, 0 if invalid or terminal */ int set_agent_state(int row, int col){ the_world.agentRow=row; the_world.agentCol=col; return check_valid(&the_world,row,col) && !check_terminal(row,col); }