void AddNodesAndConnectionToChild(NeuralGeneConnection ParentGenome, NeuralGenome childGenome) { NeuralGeneNode tmpInputNode = null; NeuralGeneNode tmpOutputNode = null; NeuralGeneConnection tmpConnection = null; if (childGenome.HasNode(ParentGenome.inputNeuron.nodeNumber)) { tmpInputNode = childGenome.GetNode(ParentGenome.inputNeuron.nodeNumber); } else { tmpInputNode = AddNodeToGenome(ParentGenome.inputNeuron.nodeType, childGenome); tmpInputNode.bias = ParentGenome.inputNeuron.bias; tmpInputNode.nodeNumber = ParentGenome.inputNeuron.nodeNumber; } if (childGenome.HasNode(ParentGenome.outputNeuron.nodeNumber)) { tmpOutputNode = childGenome.GetNode(ParentGenome.outputNeuron.nodeNumber); } else { tmpOutputNode = AddNodeToGenome(ParentGenome.outputNeuron.nodeType, childGenome); tmpOutputNode.bias = ParentGenome.outputNeuron.bias; tmpOutputNode.nodeNumber = ParentGenome.outputNeuron.nodeNumber; } if (!childGenome.HasConnection(ParentGenome.inputNeuron.nodeNumber, ParentGenome.outputNeuron.nodeNumber)) { childGenome.AddConnection(tmpInputNode, tmpOutputNode, ParentGenome.connectionIsEnabled, ParentGenome.innovation); } }