diff --git a/util/Grid.h b/util/Grid.h index 29e9e20..80f5055 100644 --- a/util/Grid.h +++ b/util/Grid.h @@ -7,6 +7,7 @@ #include "MinigridGrammar.h" #include "PrismModulesPrinter.h" +#include "PrismFormulaPrinter.h" #include "ConfigYaml.h" struct GridOptions { @@ -59,6 +60,7 @@ class Grid { cells lockedDoors; cells unlockedDoors; cells boxes; + cells balls; cells lava; cells goals; diff --git a/util/PrismFormulaPrinter.h b/util/PrismFormulaPrinter.h index ac14cb4..058849d 100644 --- a/util/PrismFormulaPrinter.h +++ b/util/PrismFormulaPrinter.h @@ -16,11 +16,12 @@ std::map getSurroundingCells(const cell &c); namespace prism { class PrismFormulaPrinter { public: - PrismFormulaPrinter(std::ostream &os, const AgentName &agentName, const std::map &restrictions, const cells &boxes, const cells &balls, const cells &lockedDoors, const cells &unlockedDoors, const cells &keys); + PrismFormulaPrinter(std::ostream &os, const AgentName &agentName, const std::map &restrictions, const cells &boxes, const cells &balls, const cells &lockedDoors, const cells &unlockedDoors, const cells &keys, const std::map &slipperyTiles, const cells &lava); void printFormulas(); void printRestrictionFormula(const std::string &direction, const cells &grid_cells); + void printIsOnFormula(const std::string &type, const cells &grid_cells, const std::string &direction = ""); void printRestrictionFormulaWithCondition(const std::string &reason, const std::map &coordinates, const std::string &condition); private: std::string buildFormula(const std::string &formulaName, const std::string &formula); @@ -36,6 +37,9 @@ namespace prism { cells lockedDoors; cells unlockedDoors; cells keys; + std::map slipperyTiles; + cells lava; + std::vector conditionalMovementRestrictions; }; }