4 using namespace __gnu_cxx;
6 const literals Action::_empty;
8 Action::Action(std::string name, preconditionsVector preconditions, effectsMap effects){
10 _preconditions = preconditions;
12 _currentPrecondition = _preconditions.begin();
15 Action::Action(const Action& action){
17 _preconditions = action._preconditions;
18 _effects = action._effects;
21 const literals& Action::effects(int value) const{
22 effectsMap::const_iterator effects = _effects.find(value);
23 if (effects != _effects.end())
24 return effects->second;
28 const literals& Action::preconditions() const{
29 return _currentPrecondition->second;
32 int Action::execute() const{
33 cout << "Executing: " << _currentPrecondition->first << endl;
37 const string& Action::name() const{
41 bool Action::nextExecutable(){
42 if (++_currentPrecondition != _preconditions.end())
48 _currentPrecondition = _preconditions.begin();