public World(INetwork network) : base(0, 0, 1000, 1000) { color = System.Drawing.Brushes.White; bigBrain = (FloatFastConcurrentNetwork)network; size = height; }
public Predator(float x, float y, float w, float h,INetwork network) : base(x, y, w, h, network) { radius = 200; sensors = new float[5]; angledelta = (float)Math.PI / sensors.Length; halfangledelta = angledelta / 2.0f; brain = (FloatFastConcurrentNetwork)network; }
public static void Write(XmlNode parentNode, FloatFastConcurrentNetwork network, IActivationFunction activationFn) { //----- Start writing. Create document root node. XmlElement xmlNetwork = XmlUtilities.AddElement(parentNode, "network"); XmlUtilities.AddAttribute(xmlNetwork, "activation-fn-id", activationFn.FunctionId); //----- Write Connections. XmlElement xmlConnections = XmlUtilities.AddElement(xmlNetwork, "connections"); foreach (FloatFastConnection connectionGene in network.connectionArray) WriteConnection(xmlConnections, connectionGene); }
// might want to find a cleaner way to do the cloning.. currently this will require updating this method anytime a field is added/removed from the class // this may not be necessary public FloatFastConcurrentNetwork getClone() { FloatFastConcurrentNetwork copy = (FloatFastConcurrentNetwork)this.MemberwiseClone(); copy.neuronSignalArray = (float[])this.neuronSignalArray.Clone(); copy._neuronSignalArray = (float[])this._neuronSignalArray.Clone(); copy.connectionArray = (FloatFastConnection[])this.connectionArray.Clone(); copy.biasArray = (double[])this.biasArray.Clone(); copy.timeConstantArray = (double[])this.timeConstantArray.Clone(); if (this.overrideSignals != null) { copy.overrideSignals = (float[])this.overrideSignals.Clone(); } copy.activationFnArray = (IActivationFunction[])this.activationFnArray.Clone(); return(copy); }