Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
AIDecisionUtility.cpp File Reference
#include "AIDecisionUtility.hpp"
#include "AITradeUtility.hpp"
#include <algorithm>
#include <cmath>
#include <limits>
Include dependency graph for AIDecisionUtility.cpp:

Go to the source code of this file.

Namespaces

namespace  monopoly
 
namespace  monopoly::ai
 
namespace  monopoly::ai::decision
 

Functions

std::int64_t monopoly::ai::decision::excessCashAvailable (const rules::GameState &state, rules::PlayerNumber player, bool cashOnly, CashStrategy strategy, std::int64_t minCashOnHand, std::int64_t moneyOwed) noexcept
 
std::int64_t monopoly::ai::decision::cashAvailableAfterHousing (const rules::GameState &state, rules::PlayerNumber player, CashStrategy strategy, std::int64_t minCashOnHand, std::int64_t moneyOwed) noexcept
 
bool monopoly::ai::decision::shouldBuyProperty (const rules::GameState &state, rules::PlayerNumber player, rules::board::SquareType property, CashStrategy strategy, std::int64_t minCashOnHand, std::span< const std::int64_t > moneyOwed) noexcept
 
bool monopoly::ai::decision::hypotheticalBuyHouse (rules::GameState &state, rules::PlayerNumber player, std::int64_t moneyOwed) noexcept
 
rules::board::SquareType monopoly::ai::decision::hypotheticalUnmortgageMonopolyProperty (rules::GameState &state, rules::PlayerNumber player, CashStrategy strategy, std::int64_t minCashOnHand, std::int64_t moneyOwed) noexcept
 
rules::board::SquareType monopoly::ai::decision::hypotheticalUnmortgageProperty (rules::GameState &state, rules::PlayerNumber player, bool onlyMonopolies, CashStrategy strategy, std::int64_t minCashOnHand, std::int64_t moneyOwed) noexcept
 
bool monopoly::ai::decision::shouldUnmortgageProperty (const rules::GameState &state, rules::PlayerNumber player, CashStrategy strategy, std::int64_t minCashOnHand, std::int64_t moneyOwed) noexcept
 
HousePurchaseDecision monopoly::ai::decision::shouldBuyHouse (const rules::GameState &state, rules::PlayerNumber player, CashStrategy strategy, std::int64_t minCashOnHand, std::uint8_t housingPurchaseStrategy, std::int64_t moneyOwed) noexcept
 
EconomicActionPlan monopoly::ai::decision::planBuyHouseAction (const rules::GameState &state, rules::PlayerNumber player, CashStrategy strategy, std::int64_t minCashOnHand, std::uint8_t housingPurchaseStrategy, std::int64_t moneyOwed) noexcept
 
std::optional< rules::board::SquareType > monopoly::ai::decision::chooseHousingAuctionSquare (const rules::GameState &state, rules::PlayerNumber player, HousingAuctionBuilding building, CashStrategy strategy, std::int64_t minCashOnHand, rules::board::PropertySet legalSquares, bool reservedBuilding, std::int64_t moneyOwed) noexcept
 
EconomicActionPlan monopoly::ai::decision::planUnmortgagePropertyAction (const rules::GameState &state, rules::PlayerNumber player, CashStrategy strategy, std::int64_t minCashOnHand, std::int64_t moneyOwed) noexcept
 
std::optional< bool > monopoly::ai::decision::chooseFractionTax (const rules::GameState &state, rules::PlayerNumber player) noexcept
 
std::optional< JailExitChoice > monopoly::ai::decision::chooseJailExitChoice (const rules::GameState &state, rules::PlayerNumber player, bool canRollDoubles, bool canPayFee, bool canUseCard) noexcept
 
std::int64_t monopoly::ai::decision::totalWorthWithFactors (const rules::GameState &state, rules::PlayerNumber player, const WorthFactors &factors) noexcept
 
bool monopoly::ai::decision::mortgageWorstProperty (rules::GameState &state, rules::PlayerNumber player, bool sellHouses, bool mortgageMonopoly) noexcept
 
EconomicActionPlan monopoly::ai::decision::planHouseSaleAction (const rules::GameState &state, rules::board::SquareType referenceSquare) noexcept
 
EconomicActionPlan monopoly::ai::decision::planDebtLiquidationStep (const rules::GameState &state, rules::PlayerNumber player, bool sellHouses) noexcept
 
void monopoly::ai::decision::mortgageNegativeCashPlayers (rules::GameState &state) noexcept
 
double monopoly::ai::decision::evaluateWinningChances (const rules::GameState &state, rules::PlayerNumber player, const WinningChanceConfig &config, std::span< double > savePlayerChances) noexcept
 
double monopoly::ai::decision::evaluateTrade (const rules::GameState &state, rules::PlayerNumber player, rules::PlayerNumber strategyPlayer, const ai::trade::TradeProposalList &proposals, const TradeEvaluationConfig &config) noexcept
 
std::int64_t monopoly::ai::decision::tradeBidForProperty (const rules::GameState &state, rules::PlayerNumber player, rules::board::SquareType property, std::int64_t currentBid, rules::PlayerNumber currentBidder, const AuctionBidConfig &config) noexcept
 
std::int64_t monopoly::ai::decision::bidForAuctionItem (const rules::GameState &state, rules::PlayerNumber player, rules::board::SquareType item, std::int64_t currentBid, rules::PlayerNumber currentBidder, const AuctionBidConfig &config, bool useTenDollarIncrement) noexcept
 
void monopoly::ai::decision::evaluateTradePlayerList (const rules::GameState &state, std::span< const rules::PlayerNumber > players, rules::PlayerNumber strategyPlayer, const ai::trade::TradeProposalList &proposals, bool givingMonopolyForCash, const TradeEvaluationConfig &config, std::span< double > evaluations) noexcept
 
bool monopoly::ai::decision::makeTradeFair (const rules::GameState &state, rules::PlayerNumber player, std::span< const rules::PlayerNumber > partners, std::int64_t giveMost, bool givingMonopoly, ai::trade::TradeProposalList &proposals, const FairTradeConfig &config, std::span< const ai::trade::FutureImmunityRecord > immunities) noexcept
 
bool monopoly::ai::decision::buildMonopolyTrade (const rules::GameState &state, rules::PlayerNumber player, rules::board::SquareGroup group, std::span< const rules::PlayerNumber > partners, const ai::trade::PropertySets &properties, ai::trade::TradeProposalList &proposals, const MonopolyProposalConfig &config) noexcept
 
bool monopoly::ai::decision::buildMonopolyForCash (const rules::GameState &state, rules::PlayerNumber player, rules::PlayerNumber firstPartner, const ai::trade::PropertySets &properties, ai::trade::TradeProposalList &proposals, const MonopolyProposalConfig &config) noexcept
 
bool monopoly::ai::decision::buildSemiImportantTrade (const rules::GameState &state, rules::PlayerNumber player, std::span< const double > playerAttitudes, const ai::trade::PropertySets &properties, const SemiImportantTradeInputs &inputs, ai::trade::TradeProposalList &proposals, const MonopolyProposalConfig &config) noexcept
 
ProactiveTradeResult monopoly::ai::decision::buildProactiveTrade (const rules::GameState &state, rules::PlayerNumber player, std::span< const double > playerAttitudes, const ai::trade::PropertySets &properties, const ProactiveTradeInputs &inputs, const MonopolyProposalConfig &config) noexcept
 
CounterProposalPreflightResult monopoly::ai::decision::counterProposalPreflight (const rules::GameState &state, rules::PlayerNumber player, const ai::trade::TradeProposalList &currentTrade, const CounterProposalPreflightInputs &inputs, const CounterProposalPreflightConfig &config, CounterProposalSession &session, std::span< const ai::trade::FutureImmunityRecord > immunities) noexcept
 
CounterProposalBalanceResult monopoly::ai::decision::counterProposalBalance (const rules::GameState &state, rules::PlayerNumber player, const CounterProposalPreflightResult &preflight, ai::trade::TradeProposalList &proposals, const CounterProposalBalanceConfig &config, std::span< const ai::trade::FutureImmunityRecord > immunities) noexcept
 
bool monopoly::ai::decision::shouldGiveAwayMonopoly (const rules::GameState &state, rules::PlayerNumber player, CashStrategy strategy, std::int64_t minCashOnHand, int maxHousesPerSquareForGiveAway, std::span< const std::int64_t > moneyOwed) noexcept