41 std::string
const&
name()
const {
return m_name; }
51 if (m_cards_in_hand.contains(card))
54 if (m_cards_not_in_hand.contains(card))
64 m_cards_in_hand.insert(card);
65 simplify_possibilities_with_card(card,
true);
66 check_if_all_cards_in_hand();
73 m_cards_not_in_hand.insert(card);
74 simplify_possibilities_with_card(card,
false);
75 check_if_all_cards_in_hand();
82 m_possibilities.push_back(set);
83 remove_superfluous_possibilities();
84 check_if_all_cards_in_hand();
88 void simplify_possibilities_with_card(
Card,
bool has_card);
89 void remove_superfluous_possibilities();
90 void check_if_all_cards_in_hand();
93 std::size_t m_card_count;
97 std::vector<CardSet> m_possibilities;
The file that contains the definition of the Cluedo::CardSet class.
Card
All the cards in Cluedo.
Definition Card.hpp:66
A set of cards.
Definition CardSet.hpp:20
Player(std::string const &name, std::size_t card_count)
Definition Player.hpp:35
std::optional< bool > has_card(Card card) const
Definition Player.hpp:50
void add_in_hand_card(Card card)
Definition Player.hpp:63
std::size_t card_count() const
Definition Player.hpp:45
void add_not_in_hand_card(Card card)
Definition Player.hpp:72
void add_possible_cards(CardSet const &set)
Definition Player.hpp:81
std::string const & name() const
Definition Player.hpp:41
The solver of a Cluedo game.
Definition Solver.hpp:24