Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
AIUtility.hpp File Reference
#include "BoardRules.hpp"
#include "CardTypes.hpp"
#include <array>
#include <cstddef>
#include <cstdint>
#include <span>
Include dependency graph for AIUtility.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  monopoly::ai::GroupRange
 
struct  monopoly::ai::MonopolyLots
 
struct  monopoly::ai::HighestRentResult
 
struct  monopoly::ai::MonopolyCollection
 

Namespaces

namespace  monopoly
 
namespace  monopoly::ai
 

Enumerations

enum class  monopoly::ai::MonopolyStage : std::uint8_t { monopoly::ai::Buying = 0 , monopoly::ai::NoMonopolies , monopoly::ai::MonopoliesNotOwnOne , monopoly::ai::MonopoliesOwnOne }
 
enum class  monopoly::ai::TokenReaction : std::uint8_t { monopoly::ai::Happy = 0 , monopoly::ai::Sad , monopoly::ai::Neutral , monopoly::ai::Angry }
 

Functions

GroupRange monopoly::ai::groupRange (rules::board::SquareGroup group) noexcept
 
rules::board::PropertySet monopoly::ai::propertiesOwnedByPlayer (const rules::GameState &state, rules::PlayerNumber player) noexcept
 
rules::board::PropertySet monopoly::ai::monopolySet (rules::board::SquareType square) noexcept
 
int monopoly::ai::propertyCount (rules::board::PropertySet properties) noexcept
 
bool monopoly::ai::testForMonopoly (rules::board::PropertySet properties, rules::board::SquareType square) noexcept
 
MonopolyLots monopoly::ai::monopolyLots (rules::board::SquareType square) noexcept
 
int monopoly::ai::housesOnMonopoly (const rules::GameState &state, rules::board::SquareType square) noexcept
 
bool monopoly::ai::isMonopoly (const rules::GameState &state, rules::board::SquareType square) noexcept
 
bool monopoly::ai::ownsMonopoly (const rules::GameState &state, rules::PlayerNumber player, rules::board::SquareType square, bool mortgageCounts) noexcept
 
bool monopoly::ai::playerOwnsMonopoly (const rules::GameState &state, rules::PlayerNumber player, bool countBaltic) noexcept
 
bool monopoly::ai::anyMonopoly (const rules::GameState &state) noexcept
 
bool monopoly::ai::ownsPropertyFromMonopoly (const rules::GameState &state, rules::PlayerNumber player, rules::board::SquareType square) noexcept
 
rules::PlayerNumber monopoly::ai::firstOwnerInMonopoly (const rules::GameState &state, rules::board::SquareType square) noexcept
 
int monopoly::ai::numberRailroadsUtilitiesOwned (const rules::GameState &state, rules::PlayerNumber player, rules::board::SquareGroup group, bool mortgageCounts, rules::board::PropertySet propertiesOwned) noexcept
 
std::int64_t monopoly::ai::rentIfSteppedOn (const rules::GameState &state, rules::board::SquareType square, rules::board::PropertySet propertiesOwned) noexcept
 
std::uint8_t monopoly::ai::freeHouses (const rules::GameState &state) noexcept
 
std::uint8_t monopoly::ai::freeHotels (const rules::GameState &state) noexcept
 
bool monopoly::ai::housingShortage (const rules::GameState &state, std::uint8_t criticalLevel) noexcept
 
std::int64_t monopoly::ai::liquidAssetsForProperties (const rules::GameState &state, rules::board::PropertySet properties, bool countHouses, bool countMonopolies) noexcept
 
std::int64_t monopoly::ai::liquidAssets (const rules::GameState &state, rules::PlayerNumber player, bool countHouses, bool countMonopolies, std::int64_t moneyOwed) noexcept
 
std::int64_t monopoly::ai::mostLiquidAssets (const rules::GameState &state, rules::PlayerNumber excludedPlayer, bool countMonopolies, std::span< const std::int64_t > moneyOwed) noexcept
 
std::int64_t monopoly::ai::totalWorth (const rules::GameState &state, rules::PlayerNumber player) noexcept
 
std::int64_t monopoly::ai::housesCanBuyOnMonopoly (const rules::GameState &state, rules::board::SquareType square) noexcept
 
bool monopoly::ai::playerCloseToProperty (const rules::GameState &state, rules::PlayerNumber ignorePlayer, rules::board::SquareType property, std::int64_t minDistance, std::int64_t maxDistance) noexcept
 
bool monopoly::ai::someoneCloseToMonopoly (const rules::GameState &state, rules::PlayerNumber player, const MonopolyLots &monopoly, std::int64_t minDistance, std::int64_t maxDistance) noexcept
 
std::int64_t monopoly::ai::costUnmortgageMonopoly (const rules::GameState &state, rules::board::SquareType square) noexcept
 
bool monopoly::ai::isCashCow (rules::board::SquareType square) noexcept
 
double monopoly::ai::landingFrequency (rules::board::SquareType square) noexcept
 
double monopoly::ai::averageRentReceived (const rules::GameState &state, rules::PlayerNumber player, std::int64_t startSquare, bool dontCountDevelopedMonopolies, double cashCowMultiplier, rules::board::PropertySet propertiesOwned) noexcept
 
std::int64_t monopoly::ai::averageRentPaid (const rules::GameState &state, rules::PlayerNumber player, std::int64_t startSquare, bool considerDevelopedMonopolies, double cashCowMultiplier) noexcept
 
std::int64_t monopoly::ai::minimumCalculatedExpenses (const rules::GameState &state, rules::PlayerNumber player) noexcept
 
std::int64_t monopoly::ai::potentialIncome (const rules::GameState &state, rules::PlayerNumber player) noexcept
 
rules::PlayerNumber monopoly::ai::mostExpensivePotentialIncome (const rules::GameState &state) noexcept
 
HighestRentResult monopoly::ai::highestRentSquare (const rules::GameState &state, rules::PlayerNumber player) noexcept
 
rules::PlayerNumber monopoly::ai::bestCurrentRent (const rules::GameState &state) noexcept
 
int monopoly::ai::monopoliesInSet (rules::board::PropertySet properties) noexcept
 
int monopoly::ai::monopoliesBetweenPlayers (const rules::GameState &state, std::span< const rules::PlayerNumber > players, rules::board::SquareType extraProperty) noexcept
 
std::size_t monopoly::ai::removePlayersFromList (std::span< rules::PlayerNumber > players, std::size_t playerCount, std::span< const rules::PlayerNumber > remove) noexcept
 
rules::board::PropertySet monopoly::ai::xorProperties (rules::board::PropertySet properties, std::span< const rules::board::SquareType > squares) noexcept
 
MonopolyCollection monopoly::ai::monopoliesOwned (const rules::GameState &state, rules::PlayerNumber player, bool mortgageCounts) noexcept
 
int monopoly::ai::propertiesLeftToBuy (const rules::GameState &state) noexcept
 
MonopolyStage monopoly::ai::monopolyStage (const rules::GameState &state, rules::PlayerNumber player) noexcept
 
void monopoly::ai::testSellHouses (rules::GameState &state, const MonopolyLots &monopoly, rules::board::SquareType testSquare) noexcept
 
SquareType monopoly::ai::findLowestRentProperty (const rules::GameState &state, rules::PlayerNumber player, rules::board::PropertySet properties) noexcept
 
SquareType monopoly::ai::findHighestRentMortgaged (const rules::GameState &state, rules::PlayerNumber player, rules::board::PropertySet properties, std::int64_t topUnmortgageCost) noexcept
 
TokenReaction monopoly::ai::squareMoveReaction (const rules::GameState &state, rules::PlayerNumber player, rules::board::SquareType landSquare, rules::CardType card=rules::CardType::None) noexcept
 

Variables

constexpr int monopoly::ai::HappyReactionRent = 250
 
constexpr int monopoly::ai::SadReactionRent = 100
 
constexpr int monopoly::ai::AngryReactionRent = 500
 
constexpr int monopoly::ai::CriticalUnownedSquares = 2
 
constexpr std::array< rules::board::SquareType, 8 > monopoly::ai::ExpensiveMonopolySquares