Grail (C++)  1.3.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
RouletteOptions.hh
1 // Copyright QED Software 2023.
2 
3 #ifndef GRAIL_ROULETTE_SELECTION_OPTIONS_H
4 #define GRAIL_ROULETTE_SELECTION_OPTIONS_H
5 
6 namespace grail
7 {
8 namespace utility
9 {
13 namespace roulette_selector
14 {
19  {
20  public:
21  int GetNumberOfTopBehaviors() const;
22  void SetNumberOfTopBehaviors(int value);
23  void SetUnlimitedNumberOfTopBehaviors();
24 
25  float GetRelativeUtilityThreshold() const;
26  void SetRelativeUtilityThreshold(float value);
27 
28  RouletteOptions& WithNumberOfTopBehaviors(int value);
29  RouletteOptions& WithRelativeUtilityThreshold(float value);
30 
31  private:
32  static const int UNLIMITED_NUMBER_OF_TOP_BEHAVIORS = -1;
36  int numberOfTopBehaviors = UNLIMITED_NUMBER_OF_TOP_BEHAVIORS;
37 
41  float relativeUtilityThreshold = 0.0f;
42  };
43 }
44 }
45 }
46 
47 #endif //GRAIL_ROULETTE_SELECTION_OPTIONS_H
grail::utility::roulette_selector::RouletteOptions
RouletteSelectionOptions - Struct determining options for roulette selection.
Definition: RouletteOptions.hh:18