in binding-cpp/gym_binding.cpp [249:268]
void step(const std::vector<float>& action, bool render, State* save_state_here) override
{
Json::Value act_json;
boost::shared_ptr<Space> aspace = action_space();
if (aspace->type==Space::DISCRETE) {
act_json["action"] = (int) action[0];
} else if (aspace->type==Space::BOX) {
Json::Value& array = act_json["action"];
assert(action.size()==aspace->box_low.size()); // really assert, it's a programming error on C++ part
for (int c=0; c<(int)action.size(); ++c)
array[c] = action[c];
} else {
assert(0);
}
act_json["render"] = render;
Json::Value ans = client->POST("/v1/envs/" + instance_id + "/step/", act_json.toStyledString());
observation_parse(ans["observation"], save_state_here->observation);
save_state_here->done = ans["done"].asBool();
save_state_here->reward = ans["reward"].asFloat();
}