Stefan Pranger
4 years ago
2 changed files with 112 additions and 0 deletions
@ -0,0 +1,40 @@ |
|||
#include "storm/storage/prism/Player.h"
|
|||
|
|||
namespace storm { |
|||
namespace prism { |
|||
Player::Player(std::string const& playerName, std::vector<storm::prism::Module> const& controlledModules, std::vector<storm::prism::Command> const& controlledCommands, std::string const& filename, uint_fast64_t lineNumber) : LocatedInformation(filename, lineNumber), playerName(playerName), controlledModules(controlledModules), controlledCommands(controlledCommands) { |
|||
// Nothing to do here.
|
|||
} |
|||
|
|||
std::string const& Player::getName() const { |
|||
return this->playerName; |
|||
} |
|||
|
|||
std::vector<storm::prism::Module> const& Player::getModules() const { |
|||
return this->controlledModules; |
|||
} |
|||
|
|||
std::vector<storm::prism::Command> const& Player::getCommands() const { |
|||
return this->controlledCommands; |
|||
} |
|||
|
|||
std::ostream& operator<<(std::ostream& stream, Player const& player) { |
|||
stream << "player"; |
|||
if (player.getName() != "") { |
|||
stream << " \"" << player.getName() << "\""; |
|||
} |
|||
stream << std::endl; |
|||
for (auto const& module : player.getModules()) { |
|||
stream << module.getName() << " "; |
|||
//&module != (player.getModules()).back ? std::cout << "," : std::cout << std::endl;
|
|||
} |
|||
stream << std::endl; |
|||
for (auto const& command : player.getCommands()) { |
|||
stream << "[" << command.getActionName() << "] "; |
|||
//&command != (player.getCommands()).back ? std::cout << "," : std::cout << std::endl;
|
|||
} |
|||
stream << "player" << std::endl; |
|||
return stream; |
|||
} |
|||
} // namespace prism
|
|||
} // namespace storm
|
@ -0,0 +1,72 @@ |
|||
#ifndef STORM_STORAGE_PRISM_PLAYER_H_ |
|||
#define STORM_STORAGE_PRISM_PLAYER_H_ |
|||
|
|||
#include <string> |
|||
#include <vector> |
|||
|
|||
#include "storm/storage/prism/Module.h" |
|||
#include "storm/storage/prism/Command.h" |
|||
|
|||
// needed? |
|||
#include "storm/storage/BoostTypes.h" |
|||
#include "storm/utility/OsDetection.h" |
|||
|
|||
namespace storm { |
|||
namespace prism { |
|||
class Player : public LocatedInformation { |
|||
public: |
|||
/*! |
|||
* Creates a player with the given name, controlled modules and actions. |
|||
* |
|||
* @param playerName The name of the player. |
|||
* @param controlledModules The controlled modules. |
|||
* @param controlledCommands The controlled actions. |
|||
* @param filename The filename in which the player is defined. |
|||
* @param lineNumber The line number in which the player is defined. |
|||
*/ |
|||
Player(std::string const& playerName, std::vector<storm::prism::Module> const& controlledModules, std::vector<storm::prism::Command> const& controlledCommands, std::string const& filename = "", uint_fast64_t lineNumber = 0); |
|||
|
|||
// Create default implementations of constructors/assignment. |
|||
Player() = default; |
|||
Player(Player const& other) = default; |
|||
Player& operator=(Player const& other) = default; |
|||
Player(Player&& other) = default; |
|||
Player& operator=(Player&& other) = default; |
|||
|
|||
/*! |
|||
* Retrieves the name of the player. |
|||
* |
|||
* @return The name of the player. |
|||
*/ |
|||
std::string const& getName() const; |
|||
|
|||
/*! |
|||
* Retrieves all controlled Modules of the player. |
|||
* |
|||
* @return The modules controlled by the player. |
|||
*/ |
|||
std::vector<storm::prism::Module> const& getModules() const; |
|||
|
|||
/*! |
|||
* Retrieves all controlled Commands of the player. |
|||
* |
|||
* @return The commands controlled by the player. |
|||
*/ |
|||
std::vector<storm::prism::Command> const& getCommands() const; |
|||
|
|||
friend std::ostream& operator<<(std::ostream& stream, Player const& player); |
|||
private: |
|||
// The name of the player. |
|||
std::string playerName; |
|||
|
|||
// The modules associated with this player. |
|||
std::vector<storm::prism::Module> controlledModules; |
|||
|
|||
// The commands associated with this player. |
|||
std::vector<storm::prism::Command> controlledCommands; |
|||
}; |
|||
|
|||
} // namespace prism |
|||
} // namespace storm |
|||
|
|||
#endif /* STORM_STORAGE_PRISM_PLAYER_H_ */ |
Write
Preview
Loading…
Cancel
Save
Reference in new issue