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; }
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])); } }