DigitalCurling3  1.0.0
A curling simulation system for curling AIs
game_result.hpp
Go to the documentation of this file.
1 // MIT License
2 //
3 // Copyright (c) 2022 UEC Takeshi Ito Laboratory
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in all
13 // copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 // SOFTWARE.
22 
25 
26 #ifndef DIGITALCURLING3_GAME_RESULT_HPP
27 #define DIGITALCURLING3_GAME_RESULT_HPP
28 
29 #include <cstdint>
30 #include "json/common.hpp"
31 #include "team.hpp"
32 
33 namespace digitalcurling3 {
34 
35 
36 
38 struct GameResult {
39 
41  enum class Reason : std::uint8_t {
42  kScore,
43  kConcede,
44  kTimeLimit,
45  kDraw
46  };
47 
52 
55 };
56 
57 
59 // json
60 NLOHMANN_JSON_SERIALIZE_ENUM(GameResult::Reason, {
61  {GameResult::Reason::kScore, "score"},
62  {GameResult::Reason::kConcede, "concede"},
63  {GameResult::Reason::kTimeLimit, "time_limit"},
64  {GameResult::Reason::kDraw, "draw"},
65 })
66 
67 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(
68  GameResult,
69  winner,
70  reason
71 )
73 
74 } // namespace digitalcurling3
75 
76 #endif // DIGITALCURLING3_GAME_RESULT_HPP
digitalcurling3::Team
Team
チームを識別するために用いる列挙体です.
Definition: team.hpp:39
digitalcurling3::GameResult
試合の結果を格納する.
Definition: game_result.hpp:38
common.hpp
必要なJSON変換関数を定義します
digitalcurling3::GameResult::Reason::kConcede
@ kConcede
コンシードによる勝敗
digitalcurling3::GameResult::winner
Team winner
勝利チーム
Definition: game_result.hpp:51
digitalcurling3
Digital Curling ライブラリはこの名前空間の中に定義されます
Definition: polymorphic_json.hpp:37
team.hpp
Team を定義します
digitalcurling3::GameResult::Reason::kTimeLimit
@ kTimeLimit
制限時間超過による勝敗
digitalcurling3::GameResult::Reason::kDraw
@ kDraw
引き分けの際に使用される値
digitalcurling3::Team::kInvalid
@ kInvalid
無効な値
digitalcurling3::GameResult::Reason::kScore
@ kScore
スコアによる勝敗
digitalcurling3::GameResult::reason
Reason reason
勝敗の理由
Definition: game_result.hpp:54
digitalcurling3::GameResult::Reason
Reason
勝敗が定まった理由
Definition: game_result.hpp:41