public void Init(RNetwork rNetwork, Transform hexagon) { this.hexagon = hexagon; this.rNetwork = rNetwork; initilized = true; }
private void Update() { GenerationText.text = $"Текущее количество поколений: {generationNumber}"; if (Input.GetKeyUp(KeyCode.Escape)) { Application.Quit(); } if (_isTraning == false) { if (generationNumber == 0) { InitBoomerangNeuralNetworks(); } else { rNetworks.Sort(); for (int i = 0; i < populationSize / 2; i++) { rNetworks[i] = new RNetwork(rNetworks[i + (populationSize / 2)]); rNetworks[i].Mutate(); rNetworks[i + (populationSize / 2)] = new RNetwork(rNetworks[i + (populationSize / 2)]); } for (int i = 0; i < populationSize; i++) { rNetworks[i].SetFitness(0f); } } generationNumber++; _isTraning = true; Invoke("Timer", 15f); CreateBoomerangBodies(); } if (Input.GetMouseButtonDown(0)) { leftMouseDown = true; } else if (Input.GetMouseButtonUp(0)) { leftMouseDown = false; } if (leftMouseDown == true) { Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); Hexagon.transform.position = mousePosition; } }
private void InitBoomerangNeuralNetworks() { if (populationSize % 2 != 0) { populationSize = 20; } rNetworks = new List <RNetwork>(); for (int i = 0; i < populationSize; i++) { RNetwork rNetwork = new RNetwork(layers); rNetwork.Mutate(); rNetworks.Add(rNetwork); } }