/// <summary> /// Initializes an instance of the <see cref="Trainer"/> class. /// </summary> /// <param name="user">The user.</param> /// <param name="trainingRoom">The training room/</param> public Trainer(User user, TrainingRoom trainingRoom) { User = user; UserId = user.Id; TrainingRoom = trainingRoom; TrainingRoomId = trainingRoom.Id; }
/// <summary> /// Initializes an instance of the <see cref="Brain"/> class with a set amount of input and output nodes. /// </summary> /// <param name="trainingRoom">The training room this brain is a part of.</param> public Brain(TrainingRoom trainingRoom) { TrainingRoom = trainingRoom; TrainingRoomId = TrainingRoom.Id; ConnectionGenes = new List <ConnectionGene>(); _nodes = new Dictionary <uint, Node>(); _outputNodes = new List <Node>(); _inputNodes = new List <Node>(); _childGenes = new List <ConnectionGene>(); if (Id == Guid.Empty) { Id = Guid.NewGuid(); } for (uint i = 0; i < TrainingRoom.TrainingRoomSettings.InputCount; i++) { Node node = new Node(i, NodeType.Input); _inputNodes.Add(node); _nodes[i] = node; } for (uint i = 0; i < TrainingRoom.TrainingRoomSettings.OutputCount; i++) { Node node = new Node(TrainingRoom.TrainingRoomSettings.InputCount + i, NodeType.Output); _outputNodes.Add(node); _nodes[TrainingRoom.TrainingRoomSettings.InputCount + i] = node; } trainingRoom.IncreaseNodeIdTo(TrainingRoom.TrainingRoomSettings.InputCount + TrainingRoom.TrainingRoomSettings.OutputCount); }
/// <summary> /// Initializes an instance of the <see cref="TrainingSession"/> class. /// </summary> /// <param name="trainingRoom">The training room.</param> /// <param name="userId">The user id.</param> public TrainingSession(TrainingRoom trainingRoom, Guid userId) { Id = Guid.NewGuid(); TrainingRoomId = trainingRoom.Id; StartedTimestamp = DateTime.UtcNow; UserId = userId; TrainingRoom = trainingRoom; }
/// <summary> /// Initializes an instance of the <see cref="TrainingSession"/> class. /// </summary> /// <param name="trainingRoom">The training room.</param> /// <param name="userId">The user id.</param> public TrainingSession(TrainingRoom trainingRoom, Guid userId) { Id = Guid.NewGuid(); TrainingRoomId = trainingRoom.Id; StartedTimestamp = DateTime.UtcNow; UserId = userId; TrainingRoom = trainingRoom; LeasedOrganisms = new List <LeasedOrganism>(); }
/// <summary> /// Initializes an instance of the <see cref="Brain"/> class with a set amount of input and output nodes and provided genes. /// </summary> /// <param name="id">The id for the brain.</param> /// <param name="trainingRoom">The training room this brain is a part of.</param> /// <param name="genes">The genes to create the brain out of.</param> public Brain(Guid id, TrainingRoom trainingRoom, IEnumerable <ConnectionGene> genes) : this(trainingRoom) { Id = id; foreach (ConnectionGene gene in genes) { ConnectionGenes.Add(gene.Clone()); _maxInnovation = Math.Max(gene.InnovationNumber, _maxInnovation); } }
/// <summary> /// Initializes an instance of the <see cref="Organism"/> class. /// </summary> /// <param name="trainingRoom">The training room.</param> /// <param name="brain">The brain.</param> private Organism(TrainingRoom trainingRoom, Brain brain) { Id = Guid.NewGuid(); TrainingRoomId = trainingRoom.Id; TrainingRoom = trainingRoom; Generation = trainingRoom.Generation; Brain = brain; Brain.OrganismId = Id; BrainId = brain.Id; Name = GenerateName(trainingRoom.Random.Next); }
/// <summary> /// Initializes an instance of the <see cref="Organism"/> class. /// </summary> /// <param name="trainingRoom">The training room.</param> public Organism(TrainingRoom trainingRoom) { Id = Guid.NewGuid(); TrainingRoomId = trainingRoom.Id; TrainingRoom = trainingRoom; Generation = trainingRoom.Generation; Brain brain = new Brain(trainingRoom) { OrganismId = Id }; Brain = brain; BrainId = brain.Id; Name = GenerateName(trainingRoom.Random.Next); }