ChooseTask.hpp
Go to the documentation of this file.
1 // This code is based on Sabberstone project.
2 // Copyright (c) 2017-2019 SabberStone Team, darkfriend77 & rnilva
3 // Hearthstone++ is hearthstone simulator using C++ with reinforcement learning.
4 // Copyright (c) 2019 Chris Ohk, Youngjoong Kim, SeungHyun Jeon
5 
6 #ifndef ROSETTASTONE_CHOOSE_TASK_HPP
7 #define ROSETTASTONE_CHOOSE_TASK_HPP
8 
10 
11 #include <vector>
12 
14 {
20 class ChooseTask : public ITask
21 {
22  public:
25  explicit ChooseTask(std::vector<std::size_t> choices);
26 
31  static ChooseTask Mulligan(Player& player, std::vector<std::size_t> choices);
32 
35  TaskID GetTaskID() const override;
36 
37  private:
41  TaskStatus Impl(Player& player) override;
42 
43  std::vector<std::size_t> m_choices;
44 };
45 } // namespace RosettaStone::PlayerTasks
46 
47 #endif // ROSETTASTONE_CHOOSE_TASK_HPP
TaskStatus
Meta data to represent the result of the task.
Definition: TaskStatus.hpp:15
ChooseTask class.
Definition: ChooseTask.hpp:20
ChooseTask(std::vector< std::size_t > choices)
static ChooseTask Mulligan(Player &player, std::vector< std::size_t > choices)
Definition: AttackTask.hpp:11
Player class.
Definition: Player.hpp:33
ITask class.
Definition: Tasks.hpp:22
TaskID GetTaskID() const override