Introduce using directive for map type
This sets up for quick testing of different maps with the same interface
This commit is contained in:
parent
3985ffaac4
commit
5507f8e5dc
4 changed files with 9 additions and 6 deletions
|
@ -4,7 +4,6 @@
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <iosfwd>
|
#include <iosfwd>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <unordered_map>
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "hanabi_types.hpp"
|
#include "hanabi_types.hpp"
|
||||||
|
@ -71,7 +70,7 @@ namespace Hanabi
|
||||||
|
|
||||||
[[nodiscard]] virtual std::uint64_t enumerated_states() const = 0;
|
[[nodiscard]] virtual std::uint64_t enumerated_states() const = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual const std::unordered_map<unsigned long, probability_t> & position_tablebase() const = 0;
|
[[nodiscard]] virtual const map_type<unsigned long, probability_t> & position_tablebase() const = 0;
|
||||||
|
|
||||||
virtual void init_backtracking_information() = 0;
|
virtual void init_backtracking_information() = 0;
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
#include <stack>
|
#include <stack>
|
||||||
#include <unordered_map>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
@ -117,7 +116,7 @@ namespace Hanabi
|
||||||
|
|
||||||
[[nodiscard]] std::uint64_t enumerated_states() const final;
|
[[nodiscard]] std::uint64_t enumerated_states() const final;
|
||||||
|
|
||||||
[[nodiscard]] const std::unordered_map<unsigned long, probability_t> & position_tablebase() const final;
|
[[nodiscard]] const map_type<unsigned long, probability_t> & position_tablebase() const final;
|
||||||
|
|
||||||
void init_backtracking_information() final;
|
void init_backtracking_information() final;
|
||||||
|
|
||||||
|
@ -258,7 +257,7 @@ namespace Hanabi
|
||||||
RelativeRepresentationData _relative_representation;
|
RelativeRepresentationData _relative_representation;
|
||||||
|
|
||||||
// Lookup table for states. Uses the ids calculated using the relative representation
|
// Lookup table for states. Uses the ids calculated using the relative representation
|
||||||
std::unordered_map<unsigned long, probability_t> _position_tablebase;
|
map_type<unsigned long, probability_t> _position_tablebase;
|
||||||
|
|
||||||
std::uint64_t _enumerated_states{};
|
std::uint64_t _enumerated_states{};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1336,7 +1336,7 @@ namespace Hanabi
|
||||||
}
|
}
|
||||||
|
|
||||||
template<suit_t num_suits, player_t num_players, hand_index_t hand_size>
|
template<suit_t num_suits, player_t num_players, hand_index_t hand_size>
|
||||||
const std::unordered_map<unsigned long, probability_t> &
|
const map_type<unsigned long, probability_t> &
|
||||||
HanabiState<num_suits, num_players, hand_size>::position_tablebase() const
|
HanabiState<num_suits, num_players, hand_size>::position_tablebase() const
|
||||||
{
|
{
|
||||||
return _position_tablebase;
|
return _position_tablebase;
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
|
|
||||||
#include <boost/rational.hpp>
|
#include <boost/rational.hpp>
|
||||||
|
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
namespace Hanabi
|
namespace Hanabi
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -20,6 +22,9 @@ namespace Hanabi
|
||||||
using probability_base_type = unsigned long;
|
using probability_base_type = unsigned long;
|
||||||
using rational_probability = boost::rational<probability_base_type>;
|
using rational_probability = boost::rational<probability_base_type>;
|
||||||
|
|
||||||
|
template<class Key, class Value>
|
||||||
|
using map_type = std::unordered_map<Key, Value>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Define macro
|
* Define macro
|
||||||
* NUSE_RATIONAL_PROBABILITIES
|
* NUSE_RATIONAL_PROBABILITIES
|
||||||
|
|
Loading…
Reference in a new issue