17 vars_[var_id] = value;
21 return vars_.at(var_id);
31 for (
const auto& kv : goal_state.
vars_) {
33 if (
vars_.at(kv.first) != kv.second) {
37 catch (
const std::out_of_range&) {
48 for (
const auto& kv : goal_state.
vars_) {
49 auto itr =
vars_.find(kv.first);
50 if (itr == end(
vars_) || itr->second != kv.second) {
60 string ret =
"WorldState { ";
61 for (
const auto& kv :
vars_ )
63 ret.append(kv.second ?
"TRUE " :
"FALSE ");
int distanceTo(const WorldState &goal_state) const
bool meetsGoal(const WorldState &goal_state) const
WorldState(const Divide::string &name="") noexcept
bool getVariable(const int var_id) const
bool operator==(const WorldState &other) const
void setVariable(const int var_id, const bool value)
hashMap< I32, bool > vars_