public NeuralNet(int inputs, int outputs, NodeIDGenerator nodeIDGenerator) { Inputs = inputs; Outputs = outputs; Innovation = 0; generator = nodeIDGenerator; Neurons = new List <Node>(); Connections = new List <Connection>(); for (int i = 0; i < Inputs; i++) { var node = new Node(generator.Next, Node.NodeTypes.Input) { Position = new Vector2Int(0, i), }; Neurons.Add(node); } for (int i = 0; i < Outputs; i++) { var node = new Node(generator.Next, Node.NodeTypes.Output) { Position = new Vector2Int(int.MaxValue, i), }; Neurons.Add(node); } InitializeConnections(); }
// Use this for initialization private void Start() { nodeIDGenerator = new NodeIDGenerator(); manager = new SimulationManager(InitialPopulation, nodeIDGenerator); fishManagers = new List <EntityManager>(); spawnBoundaryCenter = new Vector3(0, 0, 0); spawnBoundaryRaduis = 67f; for (int i = 0; i < InitialPopulation; i++) { var fish = CreateNewFish(); fishManagers.Add(fish); manager.AddBrain(fish.Brain); } manager.IsRunning = true; inspector.Brain = fishManagers[0].Brain; inspector.enabled = true; }
public SimulationManager(uint population, NodeIDGenerator nodeIDGenerator) { Brains = new List <NeuralNet>(); NodeIDGenerator = nodeIDGenerator; }