Exemplo n.º 1
0
    public void Init(RNetwork rNetwork, Transform hexagon)
    {
        this.hexagon  = hexagon;
        this.rNetwork = rNetwork;

        initilized = true;
    }
Exemplo n.º 2
0
    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;
        }
    }
Exemplo n.º 3
0
    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);
        }
    }