試合の状態を表す
More...
#include <game_state.hpp>
試合の状態を表す
- Note
- この構造体はカプセル化していません. これは構造体内部の値を直接書き換えることで様々な盤面の状態を作れるようにするためです. 構造体内部の値を直接書き換えることによって,内部の値が不正になる可能性がありますが, そのような内部の値が不正な GameState インスタンスを使用した場合の動作は保証しません.
◆ Stones
◆ GameState() [1/3]
digitalcurling3::GameState::GameState |
( |
| ) |
|
◆ GameState() [2/3]
digitalcurling3::GameState::GameState |
( |
GameSetting const & |
setting | ) |
|
引数で指定された試合設定に対する初期盤面を構築する
- Parameters
-
◆ GameState() [3/3]
digitalcurling3::GameState::GameState |
( |
GameState && |
| ) |
|
|
default |
ムーブする
- Note
- ムーブ済みオブジェクトに対するあらゆる操作は保証されません.
◆ GetNextTeam()
Team digitalcurling3::GameState::GetNextTeam |
( |
| ) |
const |
次に行動するチームを得る.
ゲームがすでに終了している場合 Team::kInvalid を返す.
- Returns
- 次に行動するチーム
- Exceptions
-
std::logic_error | 構造体の内容が不正な場合 |
◆ GetTotalScore()
std::uint32_t digitalcurling3::GameState::GetTotalScore |
( |
Team |
team | ) |
const |
チームの現在までの合計スコアを得る
- Parameters
-
- Returns
- 引数で指定したプレイヤーの合計スコア
- Exceptions
-
std::invalid_argument | 引数が不正な場合 |
◆ IsGameOver()
bool digitalcurling3::GameState::IsGameOver |
( |
| ) |
const |
|
inline |
ゲームが終了しているかを調べる
- Returns
- ゲームが終了している場合
true
◆ operator=()
ムーブする
- Note
- ムーブ済みオブジェクトに対するあらゆる操作は保証されません.
◆ StonesFromAllStones()
◆ StonesIndexFromAllStonesIndex()
static std::pair<Team, size_t> digitalcurling3::GameState::StonesIndexFromAllStonesIndex |
( |
size_t |
all_stones_index | ) |
|
|
static |
◆ StonesIndexToAllStonesIndex()
static size_t digitalcurling3::GameState::StonesIndexToAllStonesIndex |
( |
Team |
team, |
|
|
size_t |
team_stone_index |
|
) |
| |
|
static |
◆ StonesToAllStones()
◆ end
std::uint8_t digitalcurling3::GameState::end |
◆ extra_end_score
std::array<std::optional<std::uint8_t>, 2> digitalcurling3::GameState::extra_end_score |
エクストラエンド(延長戦)のスコア.
インデックスはチームを表します.
スコアが未確定の場合は std::nullopt
になります. エクストラエンドの得点が0以外になったとき(つまり延長戦によって勝敗が決定したとき)のみ, 有効な(std::nullopt
以外の)値が格納されます.
◆ game_result
std::optional<GameResult> digitalcurling3::GameState::game_result |
試合結果
std::nullopt
の値は試合中を意味します
◆ hammer
Team digitalcurling3::GameState::hammer |
◆ scores
std::array< std::vector<std::optional<std::uint8_t> >, 2> digitalcurling3::GameState::scores |
各エンドのスコアを格納する
1つ目のインデックスはチーム,2つ目のインデックスはエンドを表します.
スコアが未確定の場合は std::nullopt
になります.
- See also
- extra_end_score 延長エンドのスコア
◆ stones
Stones digitalcurling3::GameState::stones |
各チームのストーンの位置と角度
1つ目のインデックスはチーム,2つ目のインデックスはストーンのインデックスを表します.
ストーンが盤面に存在しない場合は std::nullopt
になります.
座標系はストーンの発射地点(ハックの位置)を原点,ショットする方向(反対側のハウスがある向き)をy軸正方向としています.
◆ thinking_time_remaining
std::array<std::chrono::milliseconds, 2> digitalcurling3::GameState::thinking_time_remaining |
The documentation for this struct was generated from the following file:
- /home/runner/work/DigitalCurling3/DigitalCurling3/include/digitalcurling3/detail/game_state.hpp