Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
AIProfileRuntime.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "AIProfile.hpp"
4
5#include <array>
6#include <expected>
7#include <filesystem>
8
10{
12 {
13 std::filesystem::path directory{};
15 std::array<bool, rules::MaxPlayers> playerLoaded{};
16 std::array<std::uint8_t, rules::MaxPlayers> loadedToken{};
17 std::array<std::uint8_t, rules::MaxPlayers> loadedLevel{};
20 };
21
22 void resetRuntime(RuntimeState& state) noexcept;
23
24 [[nodiscard]] std::expected<void, Error> initializeRuntime(
25 RuntimeState& state,
26 const std::filesystem::path& directory);
27
28 [[nodiscard]] std::expected<void, Error> loadPlayerRuntime(
29 RuntimeState& state,
31 std::uint8_t token,
32 std::uint8_t level);
33
35 RuntimeState& state,
36 rules::PlayerNumber player) noexcept;
37
38 [[nodiscard]] const Profile* playerRuntimeProfile(
39 const RuntimeState& state,
40 rules::PlayerNumber player) noexcept;
41
42 [[nodiscard]] const Profile* expertRuntimeProfile(
43 const RuntimeState& state) noexcept;
44}
unsigned state
unsigned index
int token
std::filesystem::path directory
std::array< Profile, rules::MaxPlayers > ProfileSet
Definition AIProfile.hpp:78
std::expected< void, Error > initializeRuntime(RuntimeState &state, const std::filesystem::path &directory)
void clearPlayerRuntime(RuntimeState &state, rules::PlayerNumber player) noexcept
std::expected< void, Error > loadPlayerRuntime(RuntimeState &state, rules::PlayerNumber player, std::uint8_t token, std::uint8_t level)
const Profile * expertRuntimeProfile(const RuntimeState &state) noexcept
const Profile * playerRuntimeProfile(const RuntimeState &state, rules::PlayerNumber player) noexcept
void resetRuntime(RuntimeState &state) noexcept
std::uint8_t PlayerNumber
Definition RuleTypes.hpp:12
std::array< std::uint8_t, rules::MaxPlayers > loadedLevel
std::array< std::uint8_t, rules::MaxPlayers > loadedToken
std::array< bool, rules::MaxPlayers > playerLoaded