Пример #1
0
 public Racecar(RaceTrack raceTrack, NeuralNet steeringnet)
 {
     this.raceTrack = raceTrack;
     this.position  = new Vector(raceTrack.data.start.x, raceTrack.data.start.y);
     direction      = new Vector(0.0, 1.0);
     direction.Normalize();
     speed = 0.0;
     directionchangerate = 0.0;
     IsStopped           = false;
     DistanceTraveled    = 0.0;
     eyedirections       = new List <double>()
     {
         45,
         20,
         0.0,
         -20,
         -45
     };
     seenpoints       = new List <Vector>();
     this.steeringnet = steeringnet;
 }
Пример #2
0
 public NeuralNet(NeuralNet progenitor)
 {
     Inputs  = new List <Neuron>();
     Hidden  = new List <List <Neuron> >();
     Outputs = new List <Neuron>();
     for (int i = 0; i < progenitor.Inputs.Count; i++)
     {
         Inputs.Add(new Neuron());
     }
     for (int i = 0; i < progenitor.Hidden.Count; i++)
     {
         var prevlayer = i == 0 ? Inputs : Hidden[i - 1];
         Hidden.Add(new List <Neuron>());
         for (int j = 0; j < prevlayer.Count; j++)
         {
             Hidden[i].Add(progenitor.Hidden[i][j].Mutate(prevlayer));
         }
     }
     for (int i = 0; i < progenitor.Outputs.Count; i++)
     {
         Outputs.Add(progenitor.Outputs[i].Mutate(Hidden[Hidden.Count - 1]));
     }
 }