Monopoly — Portage moderne
0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
StatsCalculatorLogic.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
RuleTypes.hpp
"
4
5
#include <cstdint>
6
#include <expected>
7
#include <string>
8
9
namespace
monopoly::statsui
10
{
11
enum class
CalculatorFunction
: std::uint8_t
12
{
13
Odds
= 0,
14
NetWorth
,
15
FutureValueToYou
,
16
FutureValueToOther
,
17
MaximumExpense
,
18
CurrentIncome
,
19
MaximumIncome
,
20
PotentialIncome
21
};
22
23
enum class
CalculatorResultKind
: std::uint8_t
24
{
25
Money
= 0,
26
Percentage
27
};
28
struct
CalculatorSelection
29
{
30
int
deed
{-1};
31
rules::PlayerNumber
player
{
rules::NobodyPlayer
};
32
int
turns
{1};
33
};
34
35
struct
CalculatorResult
36
{
37
CalculatorResultKind
kind
{
CalculatorResultKind::Money
};
38
double
value
{};
39
};
40
41
[[
nodiscard
]] std::expected<CalculatorResult, std::string>
calculate
(
42
CalculatorFunction
function
,
43
const
rules::GameState
&
state
,
44
const
CalculatorSelection& selection)
noexcept
;
45
}
state
unsigned state
Definition
ModernIBarSkin.cpp:25
index
unsigned index
Definition
ModernIBarSkin.cpp:25
RuleTypes.hpp
monopoly::rules::PlayerNumber
std::uint8_t PlayerNumber
Definition
RuleTypes.hpp:12
monopoly::rules::NobodyPlayer
constexpr PlayerNumber NobodyPlayer
Definition
RuleTypes.hpp:16
monopoly::statsui
Definition
Engine.hpp:15
monopoly::statsui::CalculatorResultKind
CalculatorResultKind
Definition
StatsCalculatorLogic.hpp:24
monopoly::statsui::CalculatorResultKind::Percentage
@ Percentage
monopoly::statsui::CalculatorResultKind::Money
@ Money
monopoly::statsui::calculate
std::expected< CalculatorResult, std::string > calculate(CalculatorFunction function, const rules::GameState &state, const CalculatorSelection &selection) noexcept
Definition
StatsCalculatorLogic.cpp:151
monopoly::statsui::CalculatorFunction
CalculatorFunction
Definition
StatsCalculatorLogic.hpp:12
monopoly::statsui::CalculatorFunction::MaximumIncome
@ MaximumIncome
monopoly::statsui::CalculatorFunction::PotentialIncome
@ PotentialIncome
monopoly::statsui::CalculatorFunction::FutureValueToOther
@ FutureValueToOther
monopoly::statsui::CalculatorFunction::Odds
@ Odds
monopoly::statsui::CalculatorFunction::FutureValueToYou
@ FutureValueToYou
monopoly::statsui::CalculatorFunction::NetWorth
@ NetWorth
monopoly::statsui::CalculatorFunction::CurrentIncome
@ CurrentIncome
monopoly::statsui::CalculatorFunction::MaximumExpense
@ MaximumExpense
monopoly::rules::GameState
Definition
RuleTypes.hpp:259
monopoly::statsui::CalculatorResult
Definition
StatsCalculatorLogic.hpp:36
monopoly::statsui::CalculatorResult::kind
CalculatorResultKind kind
Definition
StatsCalculatorLogic.hpp:37
monopoly::statsui::CalculatorResult::value
double value
Definition
StatsCalculatorLogic.hpp:38
monopoly::statsui::CalculatorSelection
Definition
StatsCalculatorLogic.hpp:29
monopoly::statsui::CalculatorSelection::player
rules::PlayerNumber player
Definition
StatsCalculatorLogic.hpp:31
monopoly::statsui::CalculatorSelection::deed
int deed
Definition
StatsCalculatorLogic.hpp:30
monopoly::statsui::CalculatorSelection::turns
int turns
Definition
StatsCalculatorLogic.hpp:32
StatsCalculatorLogic.hpp
Generated by
1.9.8