コード例 #1
0
ファイル: Generate.cs プロジェクト: Rogladon/NeouronNetwork
    BacteryControll[] FitnessFunction2()
    {
        var bs = Copy(bacteris);

        BacteryControll[] parent = new BacteryControll[2];
        float             dist   = 1000;

        foreach (var i in bs)
        {
            float lDist = Vector3.Distance(i.transform.position, i.pointSelf.position);
            if (dist > lDist)
            {
                dist      = lDist;
                parent[0] = i;
            }
        }
        dist = 1000;
        bs.Remove(parent[0]);

        foreach (var i in bs)
        {
            float lDist = Vector3.Distance(i.transform.position, i.pointSelf.position);
            if (dist > lDist)
            {
                dist      = lDist;
                parent[1] = i;
            }
            Debug.Log(dist);
        }
        return(parent);
    }
コード例 #2
0
ファイル: Generate.cs プロジェクト: Rogladon/NeouronNetwork
    BacteryControll[] FitnessFunction()
    {
        var bs = Copy(bacteris);

        BacteryControll[] parents = new BacteryControll[2];
        //List<BacteryControll> maxLife = MaxTimeLife(bs);
        //if(maxLife.Count == 1) {
        //	bs.Remove(maxLife[0]);
        //	var maxLife2 = MaxTimeLife(bs);
        //	parents[0] = maxLife[0];
        //	parents[1] = maxLife2[0];
        //	return parents;
        //}
        //if(maxLife.Count == 2) {
        //	parents[0] = maxLife[0];
        //	parents[1] = maxLife[1];
        //	return parents;
        //}
        //if(maxLife.Count > 2) {
        var maxScore = MaxScore(bs);

        if (maxScore.Count == 1)
        {
            bs.Remove(maxScore[0]);
            var maxScore2 = MaxScore(bs);
            parents[0] = maxScore[0];
            parents[1] = maxScore2[0];
            return(parents);
        }
        else
        {
            parents[0] = maxScore[Random.Range(0, maxScore.Count)];
            maxScore.Remove(parents[0]);
            parents[1] = maxScore[Random.Range(0, maxScore.Count)];
            return(parents);
        }

        //}
        return(parents);
    }