public override void Generate()
{
var rand = Generator.Random;
// randomize the root
root.Gene.Generate();
// create children
if (root.Gene.ArgumentsCount != 0)
{
root.Children = new List<GPTreeNode>();
for (int i = 0; i < root.Gene.ArgumentsCount; i++)
{
// create new child
GPTreeNode child = new GPTreeNode();
Generate(child, rand.Next(maxInitialLevel));
// add the new child
root.Children.Add(child);
}
}
}