Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
monopoly::ai::trade Namespace Reference

Classes

struct  CounterTradeRunResult
 
struct  CounterTradeRuntimeState
 
struct  FutureImmunityRecord
 
struct  MonopolyTradeGenerosity
 
struct  MonopolyTradeGroup
 
struct  PlayerPropertyAttitudeList
 
struct  PropertyImportanceConfig
 
struct  PropertyImportanceResult
 
struct  PropertyTradeMemory
 
struct  ProposedTradeSendInputs
 
struct  ProposedTradeSendPlan
 
struct  TradeAcceptanceConfig
 
struct  TradeAcceptanceResult
 
struct  TradeCadenceInputs
 
struct  TradeImportanceRecord
 
struct  TradeIngressState
 
struct  TradeProposalRecord
 
struct  TradeSendRuntimeState
 
struct  TradeTurnState
 

Typedefs

using PropertySets = std::array< rules::board::PropertySet, rules::MaxPlayers >
 
using TradeProposalList = std::array< TradeProposalRecord, rules::MaxPlayers >
 
using FutureImmunityList = std::array< FutureImmunityRecord, rules::MaxCountHitSets >
 
using WhatToTradeTable = std::array< MonopolyTradeGenerosity, WhatToTradeEntries >
 
using CashMultiplierTable = std::array< double, WhatToTradeEntries >
 
using TradeImportanceList = std::array< TradeImportanceRecord, 6 >
 

Enumerations

enum class  CounterTradeRunStatus : std::uint8_t {
  InvalidInput = 0 , PreflightStopped , ReturnedNotInvolved , BalanceStopped ,
  SendStarted , SendFailed
}
 
enum class  TradeAcceptanceStatus : std::uint8_t {
  InvalidInput = 0 , Suppressed , Busy , Accept ,
  AcceptUninvolved , RejectFutureOrImmunity , RejectFedUp , CounterOrReject
}
 
enum class  SendingTradeState : std::uint8_t {
  Nothing = 0 , AskingTradeEdit , ClearingTrade , TradeItems ,
  TradeSent
}
 
enum class  MonopolyTradeDecision : std::uint8_t { Avoid = 0 , Required = 1 , Maybe = 2 }
 
enum class  MonopolySortOrder : std::uint8_t { Ascending = 0 , Descending , Random }
 
enum class  StrategicPropertyImportance : std::uint8_t { NotImportant = 0 , GivesDirectMonopoly = 1 , AllowsTrade = 2 , CashCow = 3 }
 
enum class  PropertyClassification : std::uint8_t {
  None = 0 , One = 1 , Two , Three ,
  Four , Five , Six , Worst = 10 ,
  Best = 11
}
 
enum class  TradeImportanceItem : std::uint8_t {
  Monopoly = 0 , Trade , OneUnowned , TwoUnowned ,
  Railroad , Utility , Count , Junk
}
 
enum class  ProposedTradeSendStatus : std::uint8_t {
  InvalidInput = 0 , Busy , NotTwoPlayers , RequestEditing ,
  Ready , CapacityExceeded
}
 

Functions

CounterTradeRunResult counterProposeTrade (const rules::GameState &state, rules::PlayerNumber player, const TradeProposalList &currentTrade, const decision::CounterProposalPreflightInputs &inputs, const decision::CounterProposalPreflightConfig &preflightConfig, const decision::CounterProposalBalanceConfig &balanceConfig, decision::CounterProposalSession &session, CounterTradeRuntimeState &runtime, std::span< const FutureImmunityRecord > immunities) noexcept
 
bool continueCounterProposalTradeSend (const rules::GameState &state, CounterTradeRuntimeState &runtime) noexcept
 
void processCounterProposalActionCompleted (CounterTradeRuntimeState &runtime, actions::Type action, bool success) noexcept
 
void resetTradeIngress (TradeIngressState &state) noexcept
 
bool processTradeRuleMessage (const rules::GameState &gameState, const actions::Message &message, TradeIngressState &state) noexcept
 
bool sendProactiveTrade (const rules::GameState &gameState, rules::PlayerNumber player, const TradeProposalList &proposal, const profile::Profile &strategy, TradeIngressState &state) noexcept
 
void advanceTradeTurn (std::uint8_t numberOfPlayers, profile::ProfileSet &profiles, const std::array< bool, rules::MaxPlayers > &localAIPlayers, TradeIngressState &state) noexcept
 
std::array< double, rules::MaxPlayers > tradeResponseAttitudeChanges (const rules::GameState &gameState, rules::PlayerNumber proposer, rules::PlayerNumber respondingPlayer, bool accepted, const TradeIngressState &state, const profile::ProfileSet &profiles, const profile::ConfigContext &context) noexcept
 
TradeAcceptanceResult evaluateCurrentTradeAcceptance (const rules::GameState &gameState, rules::PlayerNumber player, const TradeAcceptanceConfig &config, const TradeIngressState &state) noexcept
 
CounterTradeRunResult counterProposeCurrentTrade (const rules::GameState &gameState, rules::PlayerNumber player, bool tradeAccept, double counterRoll, int pendingActions, bool auctionOn, const decision::CounterProposalPreflightConfig &preflightConfig, const decision::CounterProposalBalanceConfig &balanceConfig, TradeIngressState &state) noexcept
 
bool sendProposedTrade (const rules::GameState &state, rules::PlayerNumber player, const TradeProposalList &proposals, bool tradeAccept, rules::PlayerNumber proposedPlayer, TradeSendRuntimeState &runtime) noexcept
 
void processTradeSendActionCompleted (TradeSendRuntimeState &runtime, actions::Type action, bool success) noexcept
 
std::array< rules::board::SquareGroup, 8 > orderMonopolyImportance (std::int64_t liquidAssets, MonopolySortOrder order, std::span< const std::uint32_t > randomKeys) noexcept
 
MonopolyTradeGroup findSmallestMonopolyTrade (rules::PlayerNumber player, rules::board::PropertySet monopoly, std::span< const rules::PlayerNumber > candidates, const PropertySets &properties) noexcept
 
std::int64_t transferTax (const rules::GameState &state, rules::board::PropertySet properties) noexcept
 
int vetoMonopolies (rules::board::PropertySet properties) noexcept
 
int possibleMonopoly (const rules::GameState &state, rules::PlayerNumber owner, rules::board::SquareType square) noexcept
 
PropertyImportanceResult findPlayerPropertyImportance (const rules::GameState &state, rules::PlayerNumber player, rules::PlayerNumber strategyPlayer, const PropertyImportanceConfig &config, std::int64_t moneyOwed) noexcept
 
double calculateTradePropertyImportance (const rules::GameState &before, const rules::GameState &after, rules::PlayerNumber player, rules::PlayerNumber strategyPlayer, const TradeProposalList &proposals, bool givingMonopolyAway, const PropertyImportanceConfig &config, std::span< const std::int64_t > moneyOwed) noexcept
 
MonopolyTradeDecision shouldTradeForMonopoly (const rules::GameState &state, rules::PlayerNumber player) noexcept
 
rules::PlayerNumber findNonmonopolyPlayer (const rules::GameState &state, rules::PlayerNumber player, std::span< const std::int64_t > moneyOwed) noexcept
 
bool onlyPlayerHasMonopoly (const rules::GameState &state, rules::PlayerNumber player) noexcept
 
bool hasMonopolyTrade (const rules::GameState &state, rules::PlayerNumber player, rules::PlayerNumber excludedPlayer) noexcept
 
StrategicPropertyImportance strategicPropertyImportance (const rules::GameState &state, rules::board::SquareType property, rules::PlayerNumber excludedPlayer, rules::PlayerNumber includedPlayer, rules::PlayerNumber purchasingPlayer, rules::board::SquareType purchasingProperty) noexcept
 
int findFreeTradeSpot (std::span< const std::int64_t > timeLastTrade, std::size_t maxTrades) noexcept
 
bool shouldTrade (const rules::GameState &state, rules::PlayerNumber player, std::uint8_t importance, std::span< const std::int64_t > timeLastTrade, std::size_t maxTrades, const TradeCadenceInputs &inputs) noexcept
 
bool addTradeMonopoly (const rules::GameState &state, rules::PlayerNumber toPlayer, rules::board::PropertySet &properties, PropertyClassification type, TradeProposalList &proposals, std::int64_t moneyOwed) noexcept
 
PlayerPropertyAttitudeList createPlayerPropertyAttitudeList (const rules::GameState &state, rules::PlayerNumber player, const TradeProposalList &proposals, std::span< const double > playerAttitudes) noexcept
 
TradeImportanceList createItemImportanceList (const rules::GameState &state, rules::PlayerNumber player, rules::PlayerNumber strategyPlayer, const PropertyImportanceConfig &config, double strategyAttitudeTowardPlayer, const CashMultiplierTable &multipliers) noexcept
 
bool addTypeProperty (const rules::GameState &before, const rules::GameState &after, rules::PlayerNumber player, rules::PlayerNumber strategyPlayer, rules::board::PropertySet &combinedProperties, TradeImportanceItem item, TradeProposalList &proposals, const PropertySets &properties, bool giveDescending, const WhatToTradeTable &whatToTrade, double strategyAttitudeTowardPlayer, std::int64_t playerMoneyOwed) noexcept
 
void rememberTradedProperties (PropertyTradeMemory &memory, rules::PlayerNumber proposedPlayer, const TradeProposalRecord &proposal) noexcept
 
rules::board::PropertySet propertiesAlreadyTraded (const PropertyTradeMemory &memory, rules::PlayerNumber proposedPlayer, const TradeProposalRecord &proposal, int dangerLevel) noexcept
 
void forgetTradedProperties (PropertyTradeMemory &memory) noexcept
 
double cashMultiplier (double attitude, const CashMultiplierTable &multipliers) noexcept
 
bool playerInvolvedInTrade (const TradeProposalRecord &proposal) noexcept
 
rules::PlayerNumber nextPlayerWantingCash (const TradeProposalList &proposals) noexcept
 
bool tradeIsProper (const rules::GameState &state, const TradeProposalList &proposals, std::span< const FutureImmunityRecord > immunities) noexcept
 
void makeTradeProper (const rules::GameState &state, TradeProposalList &proposals, std::span< const FutureImmunityRecord > immunities) noexcept
 
void applyTradeToState (rules::GameState &state, const TradeProposalList &proposals) noexcept
 
bool isMonopolyTrade (const rules::GameState &state, const TradeProposalList &proposals) noexcept
 
bool playerHasFutureOrImmunity (rules::PlayerNumber player, std::span< const FutureImmunityRecord > immunities) noexcept
 
ProposedTradeSendPlan buildProposedTradeSendPlan (const rules::GameState &state, rules::PlayerNumber player, const TradeProposalList &proposals, const ProposedTradeSendInputs &inputs) noexcept
 
bool addTradeItem (TradeProposalList &proposals, FutureImmunityList &immunities, rules::TradeItemKind kind, std::int64_t amount, rules::PlayerNumber fromPlayer, rules::PlayerNumber toPlayer, rules::board::PropertySet propertySet) noexcept
 

Variables

constexpr std::size_t DeckCount
 
constexpr std::uint8_t TradeSomewhatImportant = 1u << 0
 
constexpr std::uint8_t TradeDesperate = 1u << 1
 
constexpr std::uint8_t TradeForCash = 1u << 2
 
constexpr std::uint8_t TradeGiveMonopoly = 1u << 3
 
constexpr std::size_t WhatToTradeEntries = 20
 
constexpr std::size_t MaxProposedTradeSendActions
 

Typedef Documentation

◆ CashMultiplierTable

◆ FutureImmunityList

◆ PropertySets

◆ TradeImportanceList

◆ TradeProposalList

◆ WhatToTradeTable

Enumeration Type Documentation

◆ CounterTradeRunStatus

Enumerator
InvalidInput 
PreflightStopped 
ReturnedNotInvolved 
BalanceStopped 
SendStarted 
SendFailed 

Definition at line 8 of file AICounterTradeRuntime.hpp.

◆ MonopolySortOrder

enum class monopoly::ai::trade::MonopolySortOrder : std::uint8_t
strong
Enumerator
Ascending 
Descending 
Random 

Definition at line 77 of file AITradeUtility.hpp.

◆ MonopolyTradeDecision

Enumerator
Avoid 
Required 
Maybe 

Definition at line 70 of file AITradeUtility.hpp.

◆ PropertyClassification

Enumerator
None 
One 
Two 
Three 
Four 
Five 
Six 
Worst 
Best 

Definition at line 202 of file AITradeUtility.hpp.

◆ ProposedTradeSendStatus

Enumerator
InvalidInput 
Busy 
NotTwoPlayers 
RequestEditing 
Ready 
CapacityExceeded 

Definition at line 321 of file AITradeUtility.hpp.

◆ SendingTradeState

enum class monopoly::ai::trade::SendingTradeState : std::uint8_t
strong
Enumerator
Nothing 
AskingTradeEdit 
ClearingTrade 
TradeItems 
TradeSent 

Definition at line 7 of file AITradeSendRuntime.hpp.

◆ StrategicPropertyImportance

Enumerator
NotImportant 
GivesDirectMonopoly 
AllowsTrade 
CashCow 

Definition at line 143 of file AITradeUtility.hpp.

◆ TradeAcceptanceStatus

Enumerator
InvalidInput 
Suppressed 
Busy 
Accept 
AcceptUninvolved 
RejectFutureOrImmunity 
RejectFedUp 
CounterOrReject 

Definition at line 65 of file AITradeIngress.hpp.

◆ TradeImportanceItem

enum class monopoly::ai::trade::TradeImportanceItem : std::uint8_t
strong
Enumerator
Monopoly 
Trade 
OneUnowned 
TwoUnowned 
Railroad 
Utility 
Count 
Junk 

Definition at line 237 of file AITradeUtility.hpp.

Function Documentation

◆ addTradeItem()

bool monopoly::ai::trade::addTradeItem ( TradeProposalList &  proposals,
FutureImmunityList &  immunities,
rules::TradeItemKind  kind,
std::int64_t  amount,
rules::PlayerNumber  fromPlayer,
rules::PlayerNumber  toPlayer,
rules::board::PropertySet  propertySet 
)
noexcept

Definition at line 1572 of file AITradeUtility.cpp.

◆ addTradeMonopoly()

bool monopoly::ai::trade::addTradeMonopoly ( const rules::GameState &  state,
rules::PlayerNumber  toPlayer,
rules::board::PropertySet &  properties,
PropertyClassification  type,
TradeProposalList &  proposals,
std::int64_t  moneyOwed 
)
noexcept

Definition at line 775 of file AITradeUtility.cpp.

◆ addTypeProperty()

bool monopoly::ai::trade::addTypeProperty ( const rules::GameState &  before,
const rules::GameState &  after,
rules::PlayerNumber  player,
rules::PlayerNumber  strategyPlayer,
rules::board::PropertySet &  combinedProperties,
TradeImportanceItem  item,
TradeProposalList &  proposals,
const PropertySets &  properties,
bool  giveDescending,
const WhatToTradeTable &  whatToTrade,
double  strategyAttitudeTowardPlayer,
std::int64_t  playerMoneyOwed 
)
noexcept

Definition at line 908 of file AITradeUtility.cpp.

◆ advanceTradeTurn()

void monopoly::ai::trade::advanceTradeTurn ( std::uint8_t  numberOfPlayers,
profile::ProfileSet &  profiles,
const std::array< bool, rules::MaxPlayers > &  localAIPlayers,
TradeIngressState &  state 
)
noexcept

Definition at line 223 of file AITradeIngress.cpp.

◆ applyTradeToState()

void monopoly::ai::trade::applyTradeToState ( rules::GameState &  state,
const TradeProposalList &  proposals 
)
noexcept

Definition at line 1312 of file AITradeUtility.cpp.

◆ buildProposedTradeSendPlan()

ProposedTradeSendPlan monopoly::ai::trade::buildProposedTradeSendPlan ( const rules::GameState &  state,
rules::PlayerNumber  player,
const TradeProposalList &  proposals,
const ProposedTradeSendInputs &  inputs 
)
noexcept

Definition at line 1377 of file AITradeUtility.cpp.

◆ calculateTradePropertyImportance()

double monopoly::ai::trade::calculateTradePropertyImportance ( const rules::GameState &  before,
const rules::GameState &  after,
rules::PlayerNumber  player,
rules::PlayerNumber  strategyPlayer,
const TradeProposalList &  proposals,
bool  givingMonopolyAway,
const PropertyImportanceConfig &  config,
std::span< const std::int64_t >  moneyOwed 
)
noexcept

Definition at line 400 of file AITradeUtility.cpp.

◆ cashMultiplier()

double monopoly::ai::trade::cashMultiplier ( double  attitude,
const CashMultiplierTable &  multipliers 
)
noexcept

Definition at line 1152 of file AITradeUtility.cpp.

◆ continueCounterProposalTradeSend()

bool monopoly::ai::trade::continueCounterProposalTradeSend ( const rules::GameState &  state,
CounterTradeRuntimeState &  runtime 
)
noexcept

Definition at line 81 of file AICounterTradeRuntime.cpp.

◆ counterProposeCurrentTrade()

CounterTradeRunResult monopoly::ai::trade::counterProposeCurrentTrade ( const rules::GameState &  gameState,
rules::PlayerNumber  player,
bool  tradeAccept,
double  counterRoll,
int  pendingActions,
bool  auctionOn,
const decision::CounterProposalPreflightConfig &  preflightConfig,
const decision::CounterProposalBalanceConfig &  balanceConfig,
TradeIngressState &  state 
)
noexcept

Definition at line 365 of file AITradeIngress.cpp.

◆ counterProposeTrade()

CounterTradeRunResult monopoly::ai::trade::counterProposeTrade ( const rules::GameState &  state,
rules::PlayerNumber  player,
const TradeProposalList &  currentTrade,
const decision::CounterProposalPreflightInputs &  inputs,
const decision::CounterProposalPreflightConfig &  preflightConfig,
const decision::CounterProposalBalanceConfig &  balanceConfig,
decision::CounterProposalSession &  session,
CounterTradeRuntimeState &  runtime,
std::span< const FutureImmunityRecord >  immunities 
)
noexcept

Definition at line 7 of file AICounterTradeRuntime.cpp.

◆ createItemImportanceList()

TradeImportanceList monopoly::ai::trade::createItemImportanceList ( const rules::GameState &  state,
rules::PlayerNumber  player,
rules::PlayerNumber  strategyPlayer,
const PropertyImportanceConfig &  config,
double  strategyAttitudeTowardPlayer,
const CashMultiplierTable &  multipliers 
)
noexcept

Definition at line 841 of file AITradeUtility.cpp.

◆ createPlayerPropertyAttitudeList()

PlayerPropertyAttitudeList monopoly::ai::trade::createPlayerPropertyAttitudeList ( const rules::GameState &  state,
rules::PlayerNumber  player,
const TradeProposalList &  proposals,
std::span< const double >  playerAttitudes 
)
noexcept

Definition at line 814 of file AITradeUtility.cpp.

◆ evaluateCurrentTradeAcceptance()

TradeAcceptanceResult monopoly::ai::trade::evaluateCurrentTradeAcceptance ( const rules::GameState &  gameState,
rules::PlayerNumber  player,
const TradeAcceptanceConfig &  config,
const TradeIngressState &  state 
)
noexcept

Definition at line 305 of file AITradeIngress.cpp.

◆ findFreeTradeSpot()

int monopoly::ai::trade::findFreeTradeSpot ( std::span< const std::int64_t >  timeLastTrade,
std::size_t  maxTrades 
)
noexcept

Definition at line 727 of file AITradeUtility.cpp.

◆ findNonmonopolyPlayer()

rules::PlayerNumber monopoly::ai::trade::findNonmonopolyPlayer ( const rules::GameState &  state,
rules::PlayerNumber  player,
std::span< const std::int64_t >  moneyOwed 
)
noexcept

Definition at line 534 of file AITradeUtility.cpp.

◆ findPlayerPropertyImportance()

PropertyImportanceResult monopoly::ai::trade::findPlayerPropertyImportance ( const rules::GameState &  state,
rules::PlayerNumber  player,
rules::PlayerNumber  strategyPlayer,
const PropertyImportanceConfig &  config,
std::int64_t  moneyOwed 
)
noexcept

Definition at line 385 of file AITradeUtility.cpp.

◆ findSmallestMonopolyTrade()

MonopolyTradeGroup monopoly::ai::trade::findSmallestMonopolyTrade ( rules::PlayerNumber  player,
rules::board::PropertySet  monopoly,
std::span< const rules::PlayerNumber >  candidates,
const PropertySets &  properties 
)
noexcept

Definition at line 297 of file AITradeUtility.cpp.

◆ forgetTradedProperties()

void monopoly::ai::trade::forgetTradedProperties ( PropertyTradeMemory &  memory)
noexcept

Definition at line 1139 of file AITradeUtility.cpp.

◆ hasMonopolyTrade()

bool monopoly::ai::trade::hasMonopolyTrade ( const rules::GameState &  state,
rules::PlayerNumber  player,
rules::PlayerNumber  excludedPlayer 
)
noexcept

Definition at line 619 of file AITradeUtility.cpp.

◆ isMonopolyTrade()

bool monopoly::ai::trade::isMonopolyTrade ( const rules::GameState &  state,
const TradeProposalList &  proposals 
)
noexcept

Definition at line 1340 of file AITradeUtility.cpp.

◆ makeTradeProper()

void monopoly::ai::trade::makeTradeProper ( const rules::GameState &  state,
TradeProposalList &  proposals,
std::span< const FutureImmunityRecord >  immunities 
)
noexcept

Definition at line 1239 of file AITradeUtility.cpp.

◆ nextPlayerWantingCash()

rules::PlayerNumber monopoly::ai::trade::nextPlayerWantingCash ( const TradeProposalList &  proposals)
noexcept

Definition at line 1188 of file AITradeUtility.cpp.

◆ onlyPlayerHasMonopoly()

bool monopoly::ai::trade::onlyPlayerHasMonopoly ( const rules::GameState &  state,
rules::PlayerNumber  player 
)
noexcept

Definition at line 564 of file AITradeUtility.cpp.

◆ orderMonopolyImportance()

std::array< rules::board::SquareGroup, 8 > monopoly::ai::trade::orderMonopolyImportance ( std::int64_t  liquidAssets,
MonopolySortOrder  order,
std::span< const std::uint32_t >  randomKeys 
)
noexcept

Definition at line 260 of file AITradeUtility.cpp.

◆ playerHasFutureOrImmunity()

bool monopoly::ai::trade::playerHasFutureOrImmunity ( rules::PlayerNumber  player,
std::span< const FutureImmunityRecord >  immunities 
)
noexcept

Definition at line 1363 of file AITradeUtility.cpp.

◆ playerInvolvedInTrade()

bool monopoly::ai::trade::playerInvolvedInTrade ( const TradeProposalRecord &  proposal)
noexcept

Definition at line 1174 of file AITradeUtility.cpp.

◆ possibleMonopoly()

int monopoly::ai::trade::possibleMonopoly ( const rules::GameState &  state,
rules::PlayerNumber  owner,
rules::board::SquareType  square 
)
noexcept

Definition at line 357 of file AITradeUtility.cpp.

◆ processCounterProposalActionCompleted()

void monopoly::ai::trade::processCounterProposalActionCompleted ( CounterTradeRuntimeState &  runtime,
actions::Type  action,
bool  success 
)
noexcept

Definition at line 99 of file AICounterTradeRuntime.cpp.

◆ processTradeRuleMessage()

bool monopoly::ai::trade::processTradeRuleMessage ( const rules::GameState &  gameState,
const actions::Message &  message,
TradeIngressState &  state 
)
noexcept

Definition at line 47 of file AITradeIngress.cpp.

◆ processTradeSendActionCompleted()

void monopoly::ai::trade::processTradeSendActionCompleted ( TradeSendRuntimeState &  runtime,
actions::Type  action,
bool  success 
)
noexcept

Definition at line 38 of file AITradeSendRuntime.cpp.

◆ propertiesAlreadyTraded()

rules::board::PropertySet monopoly::ai::trade::propertiesAlreadyTraded ( const PropertyTradeMemory &  memory,
rules::PlayerNumber  proposedPlayer,
const TradeProposalRecord &  proposal,
int  dangerLevel 
)
noexcept

Definition at line 1121 of file AITradeUtility.cpp.

◆ rememberTradedProperties()

void monopoly::ai::trade::rememberTradedProperties ( PropertyTradeMemory &  memory,
rules::PlayerNumber  proposedPlayer,
const TradeProposalRecord &  proposal 
)
noexcept

Definition at line 1104 of file AITradeUtility.cpp.

◆ resetTradeIngress()

void monopoly::ai::trade::resetTradeIngress ( TradeIngressState &  state)
noexcept

Definition at line 42 of file AITradeIngress.cpp.

◆ sendProactiveTrade()

bool monopoly::ai::trade::sendProactiveTrade ( const rules::GameState &  gameState,
rules::PlayerNumber  player,
const TradeProposalList &  proposal,
const profile::Profile &  strategy,
TradeIngressState &  state 
)
noexcept

Definition at line 190 of file AITradeIngress.cpp.

◆ sendProposedTrade()

bool monopoly::ai::trade::sendProposedTrade ( const rules::GameState &  state,
rules::PlayerNumber  player,
const TradeProposalList &  proposals,
bool  tradeAccept,
rules::PlayerNumber  proposedPlayer,
TradeSendRuntimeState &  runtime 
)
noexcept

Definition at line 7 of file AITradeSendRuntime.cpp.

◆ shouldTrade()

bool monopoly::ai::trade::shouldTrade ( const rules::GameState &  state,
rules::PlayerNumber  player,
std::uint8_t  importance,
std::span< const std::int64_t >  timeLastTrade,
std::size_t  maxTrades,
const TradeCadenceInputs &  inputs 
)
noexcept

Definition at line 741 of file AITradeUtility.cpp.

◆ shouldTradeForMonopoly()

MonopolyTradeDecision monopoly::ai::trade::shouldTradeForMonopoly ( const rules::GameState &  state,
rules::PlayerNumber  player 
)
noexcept

Definition at line 482 of file AITradeUtility.cpp.

◆ strategicPropertyImportance()

StrategicPropertyImportance monopoly::ai::trade::strategicPropertyImportance ( const rules::GameState &  state,
rules::board::SquareType  property,
rules::PlayerNumber  excludedPlayer,
rules::PlayerNumber  includedPlayer,
rules::PlayerNumber  purchasingPlayer,
rules::board::SquareType  purchasingProperty 
)
noexcept

Definition at line 654 of file AITradeUtility.cpp.

◆ tradeIsProper()

bool monopoly::ai::trade::tradeIsProper ( const rules::GameState &  state,
const TradeProposalList &  proposals,
std::span< const FutureImmunityRecord >  immunities 
)
noexcept

Definition at line 1199 of file AITradeUtility.cpp.

◆ tradeResponseAttitudeChanges()

std::array< double, rules::MaxPlayers > monopoly::ai::trade::tradeResponseAttitudeChanges ( const rules::GameState &  gameState,
rules::PlayerNumber  proposer,
rules::PlayerNumber  respondingPlayer,
bool  accepted,
const TradeIngressState &  state,
const profile::ProfileSet &  profiles,
const profile::ConfigContext &  context 
)
noexcept

Definition at line 256 of file AITradeIngress.cpp.

◆ transferTax()

std::int64_t monopoly::ai::trade::transferTax ( const rules::GameState &  state,
rules::board::PropertySet  properties 
)
noexcept

Definition at line 323 of file AITradeUtility.cpp.

◆ vetoMonopolies()

int monopoly::ai::trade::vetoMonopolies ( rules::board::PropertySet  properties)
noexcept

Definition at line 344 of file AITradeUtility.cpp.

Variable Documentation

◆ DeckCount

constexpr std::size_t monopoly::ai::trade::DeckCount
inlineconstexpr
Initial value:
=
static_cast<std::size_t>(rules::DeckType::Count)

Definition at line 23 of file AITradeUtility.hpp.

◆ MaxProposedTradeSendActions

constexpr std::size_t monopoly::ai::trade::MaxProposedTradeSendActions
inlineconstexpr
Initial value:
=
(rules::MaxPlayers * rules::MaxPlayers) +
((2 * rules::MaxPlayers) - 1) +
static_cast<std::size_t>(rules::board::SquareType::InJail) +
constexpr std::size_t DeckCount

Definition at line 339 of file AITradeUtility.hpp.

◆ TradeDesperate

constexpr std::uint8_t monopoly::ai::trade::TradeDesperate = 1u << 1
inlineconstexpr

Definition at line 163 of file AITradeUtility.hpp.

◆ TradeForCash

constexpr std::uint8_t monopoly::ai::trade::TradeForCash = 1u << 2
inlineconstexpr

Definition at line 164 of file AITradeUtility.hpp.

◆ TradeGiveMonopoly

constexpr std::uint8_t monopoly::ai::trade::TradeGiveMonopoly = 1u << 3
inlineconstexpr

Definition at line 165 of file AITradeUtility.hpp.

◆ TradeSomewhatImportant

constexpr std::uint8_t monopoly::ai::trade::TradeSomewhatImportant = 1u << 0
inlineconstexpr

Definition at line 162 of file AITradeUtility.hpp.

◆ WhatToTradeEntries

constexpr std::size_t monopoly::ai::trade::WhatToTradeEntries = 20
inlineconstexpr

Definition at line 224 of file AITradeUtility.hpp.