void step()

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();
	}