Grail (C++)  1.1.1
A multi-platform, modular, universal engine for embedding advanced AI in games.
grail::evolution::EvoScript Class Referenceabstract

Public Member Functions

void SetFitness (float _fitness)
 
float GetFitness () const
 
std::unique_ptr< EvoScriptSystemClone () const
 
virtual std::unique_ptr< EvoScriptUserClone () const =0
 
void Randomize (std::mt19937_64 &randomGenerator)
 
std::vector< std::unique_ptr< EvoScript > > GetRandomRealizations (std::mt19937_64 &randomGenerator, size_t count) const
 
std::vector< std::reference_wrapper< EvoParam > > & GetEvoParams ()
 
size_t EvoParamsCount () const
 
const EvoParamGetEvoParamAt (size_t index) const
 
void ExchangeParams (EvoScript &other, size_t inclusiveFrom, size_t exclusiveTo)
 
float CalculateSimilarity (const EvoScript &other) const
 
void CopyEvoParamValuesFrom (const EvoScript &other)
 
virtual std::string ToString () const
 

Protected Member Functions

void RegisterParam (EvoParam &parameter)
 
void RegisterParamsFromOther (const EvoScript &other)
 

Protected Attributes

std::vector< std::reference_wrapper< EvoParam > > evoParams {}
 

Member Function Documentation

◆ Randomize()

void grail::evolution::EvoScript::Randomize ( std::mt19937_64 &  randomGenerator)

Sets all parameters (EvoParams) of the script to random possible values.

◆ SystemClone()

std::unique_ptr< EvoScript > grail::evolution::EvoScript::SystemClone ( ) const

This method calls userClone() and then synchronizes values of EvoParams from the original object.

◆ UserClone()

virtual std::unique_ptr<EvoScript> grail::evolution::EvoScript::UserClone ( ) const
pure virtual

Create your final object that represents the complete player that is being optimized. You do not need to set concrete values of EvoParams, because they will be synchronized automatically.


The documentation for this class was generated from the following files: