Grail (C++)  1.2.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
SimulatedGameThinkingUnit.hh
1 // Copyright QED Software 2023.
2 
3 #ifndef GRAIL_SIMULATED_GAME_THINKING_UNIT_H
4 #define GRAIL_SIMULATED_GAME_THINKING_UNIT_H
5 
6 #include <memory>
7 #include <vector>
8 #include "ISimulatedGameAction.hh"
9 #include "ISimulatedGameUnit.hh"
10 
11 namespace grail
12 {
13 namespace simgames
14 {
15  class SimulatedGameRuntime;
16  namespace learn
17  {
18  class OfflineLearner;
19  }
20 
27  {
28  public:
29  virtual ~SimulatedGameThinkingUnit() override;
30  virtual bool IsStochastic() const override final;
31 
33  std::vector<std::shared_ptr<learn::OfflineLearner>> OfflineLearners = {};
34 
35  private:
36  virtual void ObserveNode(const SimulatedGameNode* node) override final;
37 
38  friend class SimulatedGame;
39  };
40 }
41 }
42 
43 #endif //GRAIL_SIMULATED_GAME_THINKING_UNIT_H
grail::simgames::SimulatedGameThinkingUnit::IsStochastic
virtual bool IsStochastic() const override final
For grail-internal use only.
Definition: SimulatedGameThinkingUnit.cpp:23
grail::simgames::SimulatedGameThinkingUnit::OfflineLearners
std::vector< std::shared_ptr< learn::OfflineLearner > > OfflineLearners
Add or remove objects for OfflineLearning. See @OfflineLerner and Offline Learning in SimulatedGames.
Definition: SimulatedGameThinkingUnit.hh:33
grail::simgames::SimulatedGame
The main interface class for the SimulatedGame reasoner based on the MCTS algorithm....
Definition: SimulatedGame.hh:30
grail::simgames::SimulatedGameThinkingUnit
A base class of a unit related to a rational/intelligent player. MCTS chooses actions for this kind o...
Definition: SimulatedGameThinkingUnit.hh:26
grail::simgames::ISimulatedGameUnit
Base class of a unit in the SimulatedGame framework. A unit represents part of the game-state and pef...
Definition: ISimulatedGameUnit.hh:28
grail::simgames::SimulatedGameNode
This class should not be visible to developers at all.
Definition: SimulatedGameNode.h:25