IEnumerator bekle() { baslangicZaman = Time.time; yield return(new WaitForSeconds(5)); if (carpan != 0) { foreach (Transform tf in carpanlar.transform) { aracKod tmpKod = tf.GetComponent <aracKod>(); if (tmpKod.skor > skor) { skor = tmpKod.skor; bestArac = tf.gameObject; } } carpan = 0; gen++; skor = -1; agEgit(); } }
public void agEgit() { Debug.Log("jenerasyon:" + gen); if (gen == 0) { carpan = 0; for (int i = 0; i < pop; i++) { GameObject clone = Instantiate(arac, baslangic.transform.position, arac.transform.rotation); clone.name = "arac" + i.ToString(); aracKod aracKodu = clone.AddComponent <aracKod>(); aracKodu.aracDna = ga.Population.ToArray()[i]; aracKodu.katmanAta(); clone.transform.SetParent(hareket.transform); aracKodu.carpma = 0; } } else { carpan = 0; if (hareket.transform.childCount > 0) { foreach (Transform tf in hareket.transform) { tf.GetComponent <aracKod>().carpma = 1; tf.GetComponent <aracKod>().skorHesapla(); tf.SetParent(carpanlar.transform); } } ga.NewGeneration(3, true); foreach (Transform tf in carpanlar.transform) { Destroy(tf.gameObject); } GameObject.Find("Canvas/fitText").GetComponent <Text>().text = "Fitness: " + ga.BestFitness.ToString(); GameObject.Find("Canvas/popText").GetComponent <Text>().text = "Populasyon: " + pop; GameObject.Find("Canvas/genText").GetComponent <Text>().text = "Jenerasyon: " + gen; GameObject.Find("Canvas/mutText").GetComponent <Text>().text = "Mutasyon: " + mutasyon; for (int i = 0; i < pop; i++) { GameObject clone2 = Instantiate(arac, baslangic.transform.position, arac.transform.rotation); clone2.name = "arac" + i.ToString(); aracKod aracKodu = clone2.AddComponent <aracKod>(); aracKodu.aracDna = ga.Population.ToArray()[i]; aracKodu.katmanAta(); aracKodu.carpma = 0; clone2.transform.SetParent(hareket.transform); } } }