/// <summary> /// path dosyasıdan takımları alıp Takım dizisine sıralı bir şekilde koy. /// </summary> /// <param name="path">Takımlar dosyasının yolu.</param> /// <returns>Takımlar dizisi; eğer sorun olmazsa, null; hata olursa.</returns> public static Takim[] TakimlariAl(string path) { try { DosyaYolu = path; string[] lines = System.IO.File.ReadAllLines(path); // https://msdn.microsoft.com/en-us/library/ezwyzy7b.aspx Takim[] takimlar = new Takim[TakimlarBilgisi.TakimSayisi]; // Takım sayısı 32 64 ve 128 olmalı. if (TakimlarBilgisi.TakimSayisi != 32 && TakimlarBilgisi.TakimSayisi != 64 && TakimlarBilgisi.TakimSayisi != 128) { return(null); } for (int i = 0; i < lines.Length; i++) { string[] ad_guc = lines[i].Split(','); if (i < TakimlarBilgisi.SeriBasiSayisi) { takimlar[i] = new Takim(ad_guc[0], Convert.ToInt32(ad_guc[1]), true); } else { takimlar[i] = new Takim(ad_guc[0], Convert.ToInt32(ad_guc[1]), false); } } Array.Sort(takimlar, delegate(Takim x, Takim y) { return((-1 * x.TakimGucu).CompareTo(-1 * y.TakimGucu)); }); // http://stackoverflow.com/questions/1304278/how-to-sort-an-array-containing-class-objects-by-a-property-value-of-a-class-ins return(takimlar); } catch { return(null); } }
public MacBilgisi(Takim a, Takim b, int a_skoru, int b_skoru) { aSkoru = a_skoru; bSkoru = b_skoru; this.a = a; this.b = b; }
/// <summary> /// a kazanırsa true döndürür, b kazanırsa false. Kaybeden takımın elendi fieldını true yapar. /// </summary> /// <param name="a">A takımı objesi.</param> /// <param name="b">B takımı objesi.</param> /// <returns>a kazanırsa true, b kazanırsa false.</returns> private static bool MaciOynat(Takim a, Takim b) { int a_gucu = (int)Math.Pow(a.TakimGucu, 4); int b_gucu = (int)Math.Pow(b.TakimGucu, 4); int temp = a_gucu + b_gucu; int rand = TakimlarBilgisi.Rand.Next(0, temp); int[] skorlar; if (rand < a_gucu) { if (a.TakimGucu >= b.TakimGucu) { skorlar = SkorUret(a.TakimGucu - b.TakimGucu, true); } else { skorlar = SkorUret(b.TakimGucu - a.TakimGucu, false); } // Oynanmamış ilk maça maç skorunu yerleştir. for (int i = 0; i < a.Maclar.Length; i++) { if (a.Maclar[i] == null) { a.Maclar[i] = new MacBilgisi(a, b, skorlar[1], skorlar[0]); b.Maclar[i] = a.Maclar[i]; break; } } b.TakimElendi = true; return(true); } else { if (b.TakimGucu >= a.TakimGucu) { skorlar = SkorUret(b.TakimGucu - a.TakimGucu, true); } else { skorlar = SkorUret(a.TakimGucu - b.TakimGucu, false); } // Oynanmamış ilk maça maç skorunu yerleştir. for (int i = 0; i < a.Maclar.Length; i++) { if (a.Maclar[i] == null) { a.Maclar[i] = new MacBilgisi(a, b, skorlar[0], skorlar[1]); b.Maclar[i] = a.Maclar[i]; break; } } a.TakimElendi = true; return(false); } }