| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -20,43 +20,7 @@ namespace prism { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& print(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& printModelType(const ModelType &modelType); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& printConstants(std::ostream &os, const std::vector<std::string> &constants); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       /* | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        * Representation for Slippery Tile. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        *  -) North: Slips from North to South | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        *  -) East: Slips from East to West | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        *  -) South: Slips from South to North | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        *  -) West: Slips from West to East | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      enum class SlipperyType { North, East, South, West }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      /* | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       * Prints Slippery on move action. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       * | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       * @param neighborhood: Information of wall-blocks in 8-neighborhood { n, nw, e, se, s, sw, w, nw }. If entry is false, then corresponding neighboorhood position is a wall. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       * @param orientation: Information of slippery type (either north, south, east, west). | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& printSlipperyMove(std::ostream &os, const AgentName &agentName, const size_t &agentIndex, const coordinates &c, std::set<std::string> &slipperyActions, const std::array<bool, 8>& neighborhood, SlipperyType orientation); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      /* | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       * Prints Slippery on turn action. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       * | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       * @param neighborhood: Information of wall-blocks in 8-neighborhood { n, nw, e, se, s, sw, w, nw }. If entry is false, then corresponding neighboorhood position is a wall. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       * @param orientation: Information of slippery type (either north, south, east, west). | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& printSlipperyTurn(std::ostream &os, const AgentName &agentName, const size_t &agentIndex, const coordinates &c, std::set<std::string> &slipperyActions, const std::array<bool, 8>& neighborhood, SlipperyType orientation); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& printInitStruct(std::ostream &os, const AgentNameAndPositionMap &agents, const KeyNameAndPositionMap &keys, const cells &lockedDoors, const cells &unlockedDoors, prism::ModelType modelType); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& printDoneActions(std::ostream &os, const AgentName &agentName); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& printPlayerStruct(std::ostream &os, const AgentName &agentName, const bool agentWithView, const std::vector<float> &probabilities = {}, const std::set<std::string> &slipperyActions = {}); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& printGlobalMoveVariable(std::ostream &os, const size_t &numberOfPlayer); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& printRewards(std::ostream &os, const AgentName &agentName, const std::map<coordinates, float> &stateRewards, const cells &lava, const cells &goals, const std::map<Color, cells> &backgroundTiles); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& printConfiguration(std::ostream &os, const std::vector<Configuration>& configurations); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      std::ostream& printConfiguredActions(std::ostream &os, const AgentName &agentName); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      void printModelType(const ModelType &modelType); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      bool isGame() const; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -96,6 +60,15 @@ namespace prism { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      void printFaultyMovementModule(const AgentName &a); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      void printMoveModule(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      void printConstants(const std::vector<std::string> &constants); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      void printDoneActions(const AgentName &agentName); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      void printPlayerStruct(const AgentName &agentName, const std::vector<float> &probabilities = {}, const std::set<std::string> &slipperyActions = {}); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      void printRewards(const AgentName &agentName, const std::map<coordinates, float> &stateRewards, const cells &lava, const cells &goals, const std::map<Color, cells> &backgroundTiles); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      void printConfiguration(const std::vector<Configuration>& configurations); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      void printConfiguredActions(const AgentName &agentName); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      bool anyPortableObject() const; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      bool faultyBehaviour() const; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      bool slipperyBehaviour() const; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |