Beispiel #1
0
 /// <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;
 }
Beispiel #2
0
        /// <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;
 }
Beispiel #4
0
 /// <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>();
 }
Beispiel #5
0
 /// <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);
        }