Beispiel #1
0
        /// <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;
 }
Beispiel #3
0
        /// <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);
            }
        }