|
|
@ -16,11 +16,12 @@ std::map<ViewDirection, coordinates> getSurroundingCells(const cell &c); |
|
|
|
namespace prism { |
|
|
|
class PrismFormulaPrinter { |
|
|
|
public: |
|
|
|
PrismFormulaPrinter(std::ostream &os, const AgentName &agentName, const std::map<std::string, cells> &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<std::string, cells> &restrictions, const cells &boxes, const cells &balls, const cells &lockedDoors, const cells &unlockedDoors, const cells &keys, const std::map<std::string, cells> &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<ViewDirection, coordinates> &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<std::string, cells> slipperyTiles; |
|
|
|
cells lava; |
|
|
|
|
|
|
|
std::vector<std::string> conditionalMovementRestrictions; |
|
|
|
}; |
|
|
|
} |