// karincanin secebilecegi esyalari rulete atip ruletten hangisini sececegine karar ver public int RuletIleSecim(Dictionary <int, double> indisProp) { // dictionary'deki degerleri artan sirada siraladik var siraliIndisProp = indisProp.ToList(); siraliIndisProp.Sort((x, y) => x.Value.CompareTo(y.Value)); double toplam = 0; Dictionary <int, double> toplamList = new Dictionary <int, double>(); for (int i = 0; i < siraliIndisProp.Count; i++) { for (int j = i; j <= i; j++) { toplam += siraliIndisProp[j].Value; } //dictionary'nin indisiyle beraber ekliyoruz toplamList.Add(siraliIndisProp[i].Key, toplam); } // 0 ile 1 arasinda sayi tuttuk double sayi = RastgeleSayi.BetweenDouble(0, 2); // tutulan sayi, hangi rulet araliginda kaliyorsa o indisi tutuyoruz int secilecekEsya = toplamList.Aggregate((x, y) => x.Value <sayi && y.Value> sayi ? y : x).Key; return(secilecekEsya); }
public void IlkAtama() { int sayi; // karinca ilk esyayi secti for (int i = 0; i < Karincalar.Count; i++) { sayi = RastgeleSayi.Between(0, Esyalar.Count); Karincalar[i].TabuListesi.Add(sayi); } }