Beispiel #1
0
        public void TakımOlustur(Takim takım)
        {
            int rastgele, erSayisi = 7;

            //Yüzbaşı olma olasılığı
            rastgele = rd.Next(2);
            if (rastgele == 1)
            {
                takım.Birlik[0] = new Yuzbasi();
                erSayisi--;
            }
            //Teğmen olma olasılığı
            takım.Birlik[7 - erSayisi] = new Tegmen();
            erSayisi--;
            rastgele = rd.Next(2);
            if (rastgele == 1)
            {
                takım.Birlik[7 - erSayisi] = new Tegmen();
                erSayisi--;
            }
            //Geri kalanı erle doldur
            for (int i = 7 - erSayisi; i < 7; i++)
            {
                takım.Birlik[i] = new Er();
            }
            for (int i = 0; i < 7; i++)
            {
                takım.Birlik[i].hangiTakım  = takımSeçimi;
                takım.Birlik[i].sağlıkPuanı = 100;
                takım.Birlik[i].yaşıyorMu   = true;
            }
            takımSeçimi = true;
        }
Beispiel #2
0
        public override int KararVer(Takim _takim)
        {
            _digerTakim = _takim;
            rnd         = new Random();
            double karar  = rnd.NextDouble();
            var    _asker = Radar();

            vurulanAsker = _asker;

            int x = -1;

            if (karar < 0.4)
            {
                HaraketEt(Koordinat, karar);
                x = 0;
            }
            else if (karar >= 0.4 && karar < 0.8)
            {
                AtesEt();
                x = 1;
            }
            else if (karar >= 0.8 && karar < 1)
            {
                Bekle();
                x = 2;
            }

            return(x);
        }
Beispiel #3
0
 public override void AtesEt(Takim takim)
 {
     for (int i = 0; i < 7; i++)
     {
         if (Math.Abs(Koordinat.X - takim.Birlik[i].Koordinat.X) <= 2 &&
             Math.Abs(Koordinat.Y - takim.Birlik[i].Koordinat.Y) <= 2)
         {
             int rs = rand.Next(101);
             if (rs < 40)
             {
                 takim.Birlik[i].can -= 10; Console.WriteLine($"{takim.Birlik[i].can}");
             }
             else if (rs < 75)
             {
                 takim.Birlik[i].can -= 15; Console.WriteLine($"{takim.Birlik[i].can}");
             }
             else
             {
                 takim.Birlik[i].can -= 20; Console.WriteLine($"{takim.Birlik[i].can}");
             }
             if (takim.Birlik[i].can <= 0)
             {
                 takim.Birlik[i].hayattaMi = false;
             }
         }
     }
 }
Beispiel #4
0
        public List <Asker> BölgedekiDüşmanlar(Asker ateşEdecekAsker, Takim düşmanTakım, Bolge merkezKonum)
        {                               //Verilen bölge içindeki askerleri tespit eden fonksiyon.
            List <Asker> düşmanlar = new List <Asker>();
            int          rütbe     = 0; //Askerin rütbesine göre kaç blok uzaktaki düşman olduğu tespit edilecek.

            if (ateşEdecekAsker is Er)
            {
                rütbe = 2;
            }
            else if (ateşEdecekAsker is Tegmen)
            {
                rütbe = 3;
            }
            else
            {
                rütbe = 4;
            }
            for (int i = 0; i < 7; i++)
            {
                if (düşmanTakım.Birlik[i].Koordinat.ReturnX() - merkezKonum.ReturnX() < rütbe && düşmanTakım.Birlik[i].Koordinat.ReturnX() - merkezKonum.ReturnX() > -rütbe)
                {
                    if (düşmanTakım.Birlik[i].Koordinat.ReturnY() - merkezKonum.ReturnY() < rütbe && düşmanTakım.Birlik[i].Koordinat.ReturnY() - merkezKonum.ReturnY() > -rütbe)
                    {
                        if (düşmanTakım.Birlik[i].yaşıyorMu)
                        {
                            düşmanlar.Add(düşmanTakım.Birlik[i]);
                        }
                    }
                }
            }
            return(düşmanlar);
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            LogWriter.logBool = false; //Log tutulsun mu?
            Ermeydani tahta = new Ermeydani(16);
            Takim     red   = new Takim("Red", new Bolge(0, 0), tahta);

            Console.WriteLine(red.Isim);
            for (int i = 0; i < 7; i++)
            {
                Console.WriteLine(red[i]);
            }
            Takim blue = new Takim("Blue", new Bolge(11, 11), tahta);

            Console.WriteLine(blue.Isim);
            for (int i = 0; i < 7; i++)
            {
                Console.WriteLine(blue[i]);
            }
            Console.WriteLine("Savas baslıyor.....3....2....1");
            LogWriter.LogMessage($"Yeni Tur basliyor!!!");
            Savas(red, blue);
            Console.WriteLine("Tekrar?[y|n]");
            if (Console.ReadKey().KeyChar == 'y' || Console.ReadKey().KeyChar == 'Y')
            {
                Main(args);
            }
        }
        public Ermeydani()
        {
            takim1 = new Takim(true);
            takim2 = new Takim(false);
            int z = 0;

            foreach (Bolge i in takim1.takimkonum)
            {
                Harita[i.X, i.Y]       = i;
                Harita[i.X, i.Y].asker = takim1.Birlik[z];
                z = z + 1;
            }
            z = 0;
            foreach (Bolge i in takim2.takimkonum)
            {
                Harita[i.X, i.Y]       = i;
                Harita[i.X, i.Y].asker = takim2.Birlik[z];
                z = z + 1;
            }

            foreach (Bolge t in Harita)
            {
                if (t != null && t.asker != null)
                {
                    t.asker.Bekle();
                }
            }

            // Console.WriteLine(takim1.Birlik[0].Koordinat.X);
            // Console.WriteLine(takim2.Birlik[0].Koordinat.X);
        }
Beispiel #7
0
        public void HaritaYerleşimi(Takim takım1, Takim takım2)
        {
            //Takım1 haritanın sol alt köşesinde, Takım2 ise sağ üst köşede yer alacak.
            bool tekrarOluştur = false;
            int  x, y;

            for (int i = 0; i < 7; i++)
            {
                Bolge b1;
                Bolge b2;
                do
                {
                    x  = rd.Next(5);
                    y  = rd.Next(5);
                    b1 = new Bolge(x + 10, y, true);
                    b2 = new Bolge(x, y + 10, true);
                    for (int j = 0; j < i; j++)
                    {
                        if ((takım1.Birlik[j].Koordinat.ReturnX() == b1.ReturnX() && takım1.Birlik[j].Koordinat.ReturnY() == b1.ReturnY()) || (takım2.Birlik[j].Koordinat.ReturnX() == b2.ReturnX() && takım2.Birlik[j].Koordinat.ReturnY() == b2.ReturnY()))
                        {
                            tekrarOluştur = true;
                            break;
                        }
                        tekrarOluştur = false;
                    }
                } while (tekrarOluştur);
                takım1.Birlik[i].Koordinat = b1;
                takım2.Birlik[i].Koordinat = b2;
            }
        }
Beispiel #8
0
 public Asker(Bolge bolge, Takim takim, Ermeydani ermeydani)
 {
     this.koordinat = bolge;
     this.takim     = takim;
     this.ermeydani = ermeydani;
     can            = 100;
     canlimi        = true;
     random         = new Random();
 }
Beispiel #9
0
        // Initialize hard coded 2 teams
        // With initial locations of first and last 5x5 corners
        void InitializeTeams()
        {
            Log.WriteLine("\nFirst team:");
            Teams[0] = new Takim("A", this, new Point(0, 0), new Point(5, 5));
            Log.WriteLine("\nSecond team:");
            Teams[1] = new Takim("B", this, new Point(DimensionX - 5, DimensionY - 5), new Point(DimensionX, DimensionY));

            Log.WriteLine("\n\t- Teams initialized.");
        }
        static void Main(string[] args)
        {
            Random    rastgele = new Random(); // Random sınıfını kullanıp sayı uretebılmek ıcın kullanılan nesne.
            Takim     dizi = new Takim();      // Takımlara erisebilmek icin tanımlanan bir nesne.
            Ermeydani meydan = new Ermeydani(dizi);
            int       sayi, sayi2, sayi3;      // Her bir askerin ne yapacagını belırleyebılmek icin uc sayı turettık.

            foreach (Asker a in dizi.Birlik)
            {
                a.hareketkontrol = meydan;
            }
            foreach (Asker a in dizi.Birlik2)
            {
                a.hareketkontrol = meydan;
            }
            meydan.BaslangıcKoordinatları(); // Baslangıc pozisyonlarını atadıgımız metot.

            while (meydan.TakimSagligiKontrol())
            {
                sayi = rastgele.Next(0, 7);  //Birlikteki Hangi askerin secileceginin belirlenecegi random sayı.

                sayi2 = rastgele.Next(1, 4); // Secilen askerin hangi hareketi yerine getirecegini belirledigimiz random sayı.
                if (sayi2 == 1)              //uretilen sayi 1 ' e esit ise bekleyecek.
                {
                    dizi.Birlik[sayi].Bekle();
                    Console.WriteLine("İlk takimin" + "" + "(" + dizi.Birlik[sayi].Koordinat.xko + "," + dizi.Birlik[sayi].Koordinat.yko + ")" + " konumundaki askeri bekledi");
                }
                else if (sayi2 == 2) // Sayi 2 ise hareket edecek.
                {
                    dizi.Birlik[sayi].HaraketEt();
                    Console.WriteLine("İlk takimin " + "" + " " + "(" + dizi.Birlik[sayi].Koordinat.xko + "," + dizi.Birlik[sayi].Koordinat.yko + ")" + " konumundaki askeri hareket etti.");
                }
                else if (sayi2 == 3) // Sayi 3 ise ates edecek.
                {
                    dizi.Birlik[sayi].AtesEt();
                    Console.WriteLine("İlk takimin" + "" + "(" + dizi.Birlik[sayi].Koordinat.xko + "," + dizi.Birlik[sayi].Koordinat.yko + ")" + "konumundaki askeri ates etti");
                }
                sayi3 = rastgele.Next(1, 4); // Secilen askerin hangi hareketı yapacagını belırledıgımız random sayı
                if (sayi3 == 1)
                {
                    dizi.Birlik2[sayi].Bekle();
                    Console.WriteLine("İkinci takimin" + "" + "(" + dizi.Birlik2[sayi].Koordinat.xko + "," + dizi.Birlik2[sayi].Koordinat.yko + ")" + " konumundaki askeri bekledi");
                }
                else if (sayi3 == 2)
                {
                    dizi.Birlik2[sayi].HaraketEt();
                    Console.WriteLine("İkinci takimin " + "" + "(" + dizi.Birlik2[sayi].Koordinat.xko + "," + dizi.Birlik2[sayi].Koordinat.yko + ")" + " konumundaki askeri hareket etti.");
                }
                else if (sayi3 == 3)
                {
                    dizi.Birlik2[sayi].AtesEt();
                    Console.WriteLine("İkinci takimin" + "" + "(" + dizi.Birlik2[sayi].Koordinat.xko + "," + dizi.Birlik2[sayi].Koordinat.yko + ")" + "konumundaki askeri ates etti");
                }
            }
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            /*
             Örnek olması açısında iskelet kod hazır olarak verilmiştir. İmplementasyonunuz bunun üzerinden gerçekleştiriniz.
            */
            Takim takim1 = new Takim();
            Takim takim2 = new Takim();
            Ermeydani meydan = new Ermeydani(


        }
        public bool check;        // Hareket sırasında hedef bolgenin dolu olup olmadıgını anlayabilmek icin kullanılan bir degisken.

        public Ermeydani(Takim t) // Bu for her bir bolgenin koordinatlarının harita uzerınde atanmasını saglıyor. Yani harita uzerındeki 16 bolgeyi belirledik.
        {
            for (int i = 0; i < 16; i++)
            {
                for (int j = 0; j < 16; j++)
                {
                    Harita[i, j] = new Bolge(i, j);
                }
            }
            team = t;
        }
Beispiel #13
0
 static void Main(string[] args)
 {
     /*
      * Örnek olması açısında iskelet kod hazır olarak verilmiştir. İmplementasyonunuz bunun üzerinden gerçekleştiriniz.
      */
     //eger calisiyor olsaydı takimlar oluşturulacaktı meydan olusacaktı ve ona göre haraket edeceklerdi bunlara ek
     //bir iki olustur fonksiyonu falan yazmam gerekirdi takim nesnesinden calistirirdim
     Ermeydani ermeydani = new Ermeydani();
     Takim     takim1    = new Takim();
     Takim     takim2    = new Takim();
 }
Beispiel #14
0
 void Savas(Ermeydani em, Takim tk1, Takim tk2, Random r)
 {
     for (int i = 0; i < 100; i++)
     {
         for (int j = 0; j < 7; j++)
         {
             tk1.Birlik[j].HaraketEt(em, r);
             tk2.Birlik[j].HaraketEt(em, r);
         }
     }
 }
Beispiel #15
0
        public Ermeydani()
        {
            //meydan oluştur
            int say1, say2;

            for (int i = 0; i < 16; i++)
            {
                for (int j = 0; j < 16; j++)
                {
                    harita[i, j]   = new Bolge();
                    harita[i, j].X = i;
                    harita[i, j].Y = j;
                }
            }
            //takim 1 oluştur
            takim[0] = new Takim(); takim[0].Ad = "A";
            foreach (Asker a in takim[0].Birlik)
            {
geri:
                say1 = rnd1.Next(0, 5);
                say2 = rnd1.Next(0, 5);
                if (harita[say1, say2].Bos)
                {
                    a.Koordinat.X          = say1;
                    a.Koordinat.Y          = say2;
                    harita[say1, say2].Bos = false;
                }
                else
                {
                    goto geri;
                }
            }
            //takim 2 oluştur
            takim[1] = new Takim(); takim[1].Ad = "B";
            foreach (Asker a in takim[1].Birlik)
            {
geri:
                say1 = rnd1.Next(10, 15);
                say2 = rnd1.Next(10, 15);
                if (harita[say1, say2].Bos)
                {
                    a.Koordinat.X          = say1;
                    a.Koordinat.Y          = say2;
                    harita[say1, say2].Bos = false;
                }
                else
                {
                    goto geri;
                }
            }
        }
Beispiel #16
0
        static void Main()
        {
            Program   p   = new Program();
            Random    r   = new Random();
            Ermeydani em  = new Ermeydani();
            Takim     tk1 = new Takim(r);

            tk1.Olustur(em, 1);
            Takim tk2 = new Takim(r);

            tk2.Olustur(em, 2);

            p.Savas(em, tk1, tk2, r);
        }
Beispiel #17
0
        static void Main(string[] args)
        {

            Ermeydani meydan = new Ermeydani(); 
            Takim a = new Takim();
            a.create_team(0, 0, true);
            Takim b = new Takim();
            b.create_team(12, 12, false);
            Random randim = new Random();

            while()

            

        }
Beispiel #18
0
        public static void Savas(Takim r, Takim m)
        {
            Random rand = new Random();

            while (r.Canlisay() > 0 && m.Canlisay() > 0)
            {
                int ind_r = rand.Next(0, 7);
                int ind_m = rand.Next(0, 7);


                if (rand.NextDouble() < 0.5)
                {
                    if (r[ind_r] != null)
                    {
                        r[ind_r].Sıra();
                    }
                    if (m[ind_m] != null)
                    {
                        m[ind_m].Sıra();
                    }
                }
                else
                {
                    if (m[ind_m] != null)
                    {
                        m[ind_m].Sıra();
                    }
                    if (r[ind_r] != null)
                    {
                        r[ind_r].Sıra();
                    }
                }
            }
            if (r.Canlisay() > 0)
            {
                Console.WriteLine($"Kazanan takim:{r.Isim}");
                LogWriter.LogMessage($"Kazanan takim:{r.Isim}");
            }
            else
            {
                Console.WriteLine($"Kazanan takim:{m.Isim}");
                LogWriter.LogMessage($"Kazanan takim:{m.Isim}");
            }
            Console.WriteLine("Kalan asker sayileri");
            Console.WriteLine($"{r.Isim}: {r.Canlisay()} -- {m.Isim}: {m.Canlisay()}");
            LogWriter.LogMessage($"Kalan asker sayileri:{r.Isim}: {r.Canlisay()} -- {m.Isim}: {m.Canlisay()}");
        }
 public override void AtesEt(Ermeydani em, Random r, Takim tk1, Takim tk2)
 {
     try
     {
         if (em.Harita[Koordinat.x, Koordinat.y].takım != em.Harita[Koordinat.x + 3, Koordinat.y].takım)
         {
         }
         else if (em.Harita[Koordinat.x, Koordinat.y].takım != em.Harita[Koordinat.x - 3, Koordinat.y].takım)
         {
         }
         else if (em.Harita[Koordinat.x, Koordinat.y].takım != em.Harita[Koordinat.x, Koordinat.y + 3].takım)
         {
         }
         else if (em.Harita[Koordinat.x, Koordinat.y].takım != em.Harita[Koordinat.x, Koordinat.y - 3].takım)
         {
         }
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
Beispiel #20
0
        public void İşlemYap(Asker asker, Takim takım1, Takim takım2, Bolge merkezBolge, StreamWriter streamWriter)
        {//30 ateş,60 hareket, 10 bekleme
            double işlem = rd.NextDouble();

            if (işlem < 0.3)
            {
                if (asker.hangiTakım == takım1.Birlik[0].hangiTakım)
                {
                    asker.AteşEt(BölgedekiDüşmanlar(asker, takım2, asker.Koordinat), streamWriter);
                }
                else
                {
                    asker.AteşEt(BölgedekiDüşmanlar(asker, takım1, asker.Koordinat), streamWriter);
                }
            }
            else if (işlem < 0.9)
            {
                asker.HareketEt(streamWriter);
            }
            else
            {
                asker.Bekle(streamWriter);
            }
        }
Beispiel #21
0
 public Asker(bool canlı, Takim takım, int saglık, int[] koordinat)
 {
     Canlı     = canlı;
     Saglık    = saglık;
     Koordinat = koordinat;
 }
Beispiel #22
0
 public Er(Bolge bolge, Takim takim, Ermeydani ermeydani) : base(bolge, takim, ermeydani)
 {
     random = new Random();
 }
Beispiel #23
0
 public Tegmen(Bolge bolge, Takim takim, Ermeydani ermeydani) : base(bolge, takim, ermeydani)
 {
 }
Beispiel #24
0
        static void Main(string[] args)
        {
            Random rand = new Random();

            /*
             * Örnek olması açısında iskelet kod hazır olarak verilmiştir. İmplementasyonunuz bunun üzerinden gerçekleştiriniz.
             */

            Takim     A         = new Takim();
            Takim     B         = new Takim();
            Ermeydani ermeydani = new Ermeydani();

            ermeydani.FillIn();

            YelestirA();
            YelestirB();

            void YelestirA()
            {
                for (int i = 0; i < 3; i++)
                {
                    if (i == 0)
                    {
                        int rs = rand.Next(101);
                        if (rs < 50)
                        {
                            A.Birlik[i] = new Er(ermeydani.Harita[0, 0]);
                        }
                        else
                        {
                            A.Birlik[i] = new Yuzbasi(ermeydani.Harita[0, 0]);
                        }
                    }
                    else if (i == 1)
                    {
                        A.Birlik[i] = new Tegmen(ermeydani.Harita[0, 1]);
                    }
                    else if (i == 2)
                    {
                        int rs = rand.Next(101);
                        if (rs < 50)
                        {
                            A.Birlik[i] = new Er(ermeydani.Harita[0, 2]);
                        }
                        else
                        {
                            A.Birlik[i] = new Tegmen(ermeydani.Harita[0, 2]);
                        }
                    }
                    A.Birlik[3] = new Er(ermeydani.Harita[0, 3]);
                    A.Birlik[4] = new Er(ermeydani.Harita[1, 0]);
                    A.Birlik[5] = new Er(ermeydani.Harita[1, 1]);
                    A.Birlik[6] = new Er(ermeydani.Harita[1, 2]);
                }
            }

            void YelestirB()
            {
                for (int i = 0; i < 3; i++)
                {
                    if (i == 0)
                    {
                        int rs = rand.Next(101);
                        if (rs < 50)
                        {
                            B.Birlik[i] = new Er(ermeydani.Harita[15, 15]);
                        }
                        else
                        {
                            B.Birlik[i] = new Yuzbasi(ermeydani.Harita[15, 15]);
                        }
                    }
                    else if (i == 1)
                    {
                        B.Birlik[i] = new Tegmen(ermeydani.Harita[15, 14]);
                    }
                    else if (i == 2)
                    {
                        int rs = rand.Next(101);
                        if (rs < 50)
                        {
                            B.Birlik[i] = new Er(ermeydani.Harita[15, 13]);
                        }
                        else
                        {
                            B.Birlik[i] = new Tegmen(ermeydani.Harita[15, 13]);
                        }
                    }
                    B.Birlik[3] = new Er(ermeydani.Harita[15, 12]);
                    B.Birlik[4] = new Er(ermeydani.Harita[14, 15]);
                    B.Birlik[5] = new Er(ermeydani.Harita[14, 14]);
                    B.Birlik[6] = new Er(ermeydani.Harita[14, 13]);
                }
            }

            while (true)
            {
                ActionA();
                if (OyunBittiMi() == true)
                {
                    break;
                }

                ActionB();
                if (OyunBittiMi() == true)
                {
                    break;
                }
            }

            void ActionA()
            {
                int secim = rand.Next(101);
                int indis = rand.Next(0, 7);

                if (secim < 30)
                {
                    A.Birlik[indis].Bekle();
                }
                else if (secim < 30)
                {
                    A.Birlik[indis].AtesEt(B);
                }
                else
                {
                    A.Birlik[indis].HaraketEt(ermeydani);
                }
            }

            void ActionB()
            {
                int secim = rand.Next(101);
                int indis = rand.Next(0, 7);

                if (secim < 30)
                {
                    B.Birlik[indis].Bekle();
                }
                else if (secim < 30)
                {
                    B.Birlik[indis].AtesEt(B);
                }
                else
                {
                    B.Birlik[indis].HaraketEt(ermeydani);
                }
            }

            bool OyunBittiMi()
            {
                for (int i = 0; i < 7; i++)
                {
                    if (A.Birlik[i].hayattaMi == true)
                    {
                        return(false);
                    }
                    else if (B.Birlik[i].hayattaMi == true)
                    {
                        return(false);
                    }
                    else
                    {
                        Console.WriteLine("oyun bitti");  return(true);
                    }
                }
                return(false);
            }

            Console.ReadKey();
        }
 public abstract void AtesEt(Takim takim);
Beispiel #26
0
        static void Main(string[] args)
        {
            StreamWriter streamWriter = File.AppendText("Kayıt.txt");

            streamWriter.WriteLine("Oyun başladı");
            Console.WriteLine("Oyun başladı. Askerler birbirini bulup ateş edene kadar bir süre ekran boş olabilir.");
            //Oyun kurulumu
            Random    rd   = new Random();
            Ermeydani oyun = new Ermeydani();
            Takim     t1   = new Takim();
            Takim     t2   = new Takim();

            oyun.TakımOlustur(t1);
            oyun.TakımOlustur(t2);
            oyun.HaritaYerleşimi(t1, t2);

            for (int i = 0; i < 7; i++)
            {
                streamWriter.WriteLine("Takım 1 Koordinatları -> " + t1.Birlik[i].Koordinat.ReturnX() + " " + t1.Birlik[i].Koordinat.ReturnY());
            }
            for (int i = 0; i < 7; i++)
            {
                streamWriter.WriteLine("Takım 2 Koordinatları -> " + t2.Birlik[i].Koordinat.ReturnX() + " " + t2.Birlik[i].Koordinat.ReturnY());
            }
            System.Threading.Thread.Sleep(500);


            //Oyun başlasın
            bool  herkesÖlüMü = false;
            Asker asker;

            while (true)
            {
                for (int i = 0; i < 7; i++)
                {
                    if (t1.Birlik[i].sağlıkPuanı == 0)
                    {
                        t1.Birlik[i].yaşıyorMu = false;
                    }
                }
                asker = t1.Birlik[rd.Next(7)]; //Her seferinde takım 1in rastgele bir askeri işlem yapacak.
                oyun.İşlemYap(asker, t1, t2, asker.Koordinat, streamWriter);
                asker = t2.Birlik[rd.Next(7)]; //Her seferinde takım 2nin rastgele bir askeri işlem yapacak.
                oyun.İşlemYap(asker, t1, t2, asker.Koordinat, streamWriter);
                //Takımların can değerleri sadece Kayıt.txt'ye kaydediliyor.
                for (int i = 0; i < 7; i++)
                {
                    streamWriter.WriteLine("Takım 1 " + t1.Birlik[i].GetType().Name + " Can " + t1.Birlik[i].sağlıkPuanı);
                }
                for (int i = 0; i < 7; i++)
                {
                    streamWriter.WriteLine("Takım 2" + t1.Birlik[i].GetType().Name + " Can " + t2.Birlik[i].sağlıkPuanı);
                }

                for (int i = 0; i < 7; i++)
                {
                    if (t1.Birlik[i].sağlıkPuanı > 0)
                    {
                        break;
                    }
                    else if (i == 6)
                    {
                        herkesÖlüMü = true;
                        Console.WriteLine("Takım 1 öldü");
                        streamWriter.WriteLine("Takım 1 öldü");
                    }
                }
                for (int i = 0; i < 7; i++)
                {
                    if (t1.Birlik[i].sağlıkPuanı > 0)
                    {
                        break;
                    }
                    else if (i == 6)
                    {
                        herkesÖlüMü = true;
                        Console.WriteLine("Takım 2 öldü");
                        streamWriter.WriteLine("Takım 2 öldü");
                    }
                }
                if (herkesÖlüMü)
                {
                    break;
                }
                System.Threading.Thread.Sleep(60);
            }


            Console.Read();
        }
        public Tegmen(bool canlı, Takim takım, int saglık, int[] koordinat) : base(canlı, takım, saglık,koordinat)
        {


        }
        static void Main(string[] args)
        {
            Random rnd = new Random();

            // Meydan oluşturuldu.
            Ermeydani meydan = new Ermeydani();

            for (int i = 0; i < 16; i++)
            {
                for (int j = 0; j < 16; j++)
                {
                    meydan.Harita[i, j] = new Bolge {
                        x = i, y = j, Asker = null
                    };
                }
            }

            #region TAKIMLAR
            // Takımlar oluşturuldu. (Eşit, Adeletli İki Takım)
            Takim   maviTakim  = new Takim();
            Asker[] maviBirlik = new Asker[7];
            maviTakim.Ad = "Mavi Takım";
            maviTakim.BaslangicBolgesi = new Bolge {
                x = 0, y = 0
            };
            maviTakim.BitisBolgesi = new Bolge {
                x = 4, y = 4
            };
            for (int i = 0; i < maviBirlik.Length; i++)
            {
                bool state = false;
                while (!state)
                {
                    int _x = rnd.Next(maviTakim.BaslangicBolgesi.x, maviTakim.BitisBolgesi.x + 1);
                    int _y = rnd.Next(maviTakim.BaslangicBolgesi.x, maviTakim.BitisBolgesi.y + 1);

                    if (meydan.Harita[_x, _y].Asker == null)
                    {
                        if (i < 4)
                        {
                            Er _er = new Er();
                            _er.Takim     = maviTakim;
                            _er.Ermeydani = meydan;
                            _er.Ad        = " ME" + i + " ";
                            _er.Koordinat = new Bolge {
                                x = _x, y = _y, Asker = _er
                            };
                            meydan.Harita[_x, _y].Asker = _er;

                            maviBirlik[i] = _er;
                        }
                        else if (i >= 4 && i < 6)
                        {
                            Tegmen _tegmen = new Tegmen();
                            _tegmen.Takim     = maviTakim;
                            _tegmen.Ermeydani = meydan;
                            _tegmen.Ad        = " MT" + i + " ";
                            _tegmen.Koordinat = new Bolge {
                                x = _x, y = _y, Asker = _tegmen
                            };
                            meydan.Harita[_x, _y].Asker = _tegmen;
                            maviBirlik[i] = _tegmen;
                        }
                        else
                        {
                            Yuzbasi _yuzbasi = new Yuzbasi();
                            _yuzbasi.Takim     = maviTakim;
                            _yuzbasi.Ermeydani = meydan;
                            _yuzbasi.Ad        = " MY" + i + " ";
                            _yuzbasi.Koordinat = new Bolge {
                                x = _x, y = _y, Asker = _yuzbasi
                            };
                            meydan.Harita[_x, _y].Asker = _yuzbasi;
                            maviBirlik[i] = _yuzbasi;
                        }
                        state = true;
                    }
                }
            }
            maviTakim.Birlik = maviBirlik;

            Takim   kirmiziTakim  = new Takim();
            Asker[] kirmiziBirlik = new Asker[7];
            kirmiziTakim.Ad = "Kırmızı Takım";
            kirmiziTakim.BaslangicBolgesi = new Bolge {
                x = 11, y = 11
            };
            kirmiziTakim.BitisBolgesi = new Bolge {
                x = 15, y = 15
            };
            for (int i = 0; i < kirmiziBirlik.Length; i++)
            {
                bool state = false;
                while (!state)
                {
                    int _x = rnd.Next(kirmiziTakim.BaslangicBolgesi.x, kirmiziTakim.BitisBolgesi.x + 1);
                    int _y = rnd.Next(kirmiziTakim.BaslangicBolgesi.y, kirmiziTakim.BitisBolgesi.y + 1);

                    if (meydan.Harita[_x, _y].Asker == null)
                    {
                        if (i < 4)
                        {
                            Er _er = new Er();
                            _er.Takim     = kirmiziTakim;
                            _er.Ermeydani = meydan;
                            _er.Ad        = " KE" + i + " ";
                            _er.Koordinat = new Bolge {
                                x = _x, y = _y, Asker = _er
                            };
                            meydan.Harita[_x, _y].Asker = _er;
                            kirmiziBirlik[i]            = _er;
                        }
                        else if (i >= 4 && i < 6)
                        {
                            Tegmen _tegmen = new Tegmen();
                            _tegmen.Takim     = kirmiziTakim;
                            _tegmen.Ermeydani = meydan;
                            _tegmen.Ad        = " KT" + i + " ";
                            _tegmen.Koordinat = new Bolge {
                                x = _x, y = _y, Asker = _tegmen
                            };
                            meydan.Harita[_x, _y].Asker = _tegmen;
                            kirmiziBirlik[i]            = _tegmen;
                        }
                        else
                        {
                            Yuzbasi _yuzbasi = new Yuzbasi();
                            _yuzbasi.Takim     = kirmiziTakim;
                            _yuzbasi.Ermeydani = meydan;
                            _yuzbasi.Ad        = " KY" + i + " ";
                            _yuzbasi.Koordinat = new Bolge {
                                x = _x, y = _y, Asker = _yuzbasi
                            };
                            meydan.Harita[_x, _y].Asker = _yuzbasi;
                            kirmiziBirlik[i]            = _yuzbasi;
                        }
                        state = true;
                    }
                }
            }
            kirmiziTakim.Birlik = kirmiziBirlik;
            #endregion

            for (int i = 0; i < 16; i++)
            {
                for (int j = 0; j < 16; j++)
                {
                    if (meydan.Harita[i, j].Asker != null)
                    {
                        Console.Write(meydan.Harita[i, j].Asker.Ad);
                    }
                    else
                    {
                        Console.Write(" ___ ");
                    }
                }
                Console.WriteLine();
            }


            bool gameState = true;
            while (gameState)
            {
                // Mavi Takim Siradaki Asker
                bool maviState = false;
                while (!maviState)
                {
                    int maviTakimSiradakiAsker = rnd.Next(0, maviTakim.Birlik.Length);

                    if (maviTakim.Birlik[maviTakimSiradakiAsker].HayattaMi)
                    {
                        maviState = true;
                        int x = maviTakim.Birlik[maviTakimSiradakiAsker].KararVer(kirmiziTakim);

                        if (x == 0)
                        {
                            for (int i = 0; i < 16; i++)
                            {
                                for (int j = 0; j < 16; j++)
                                {
                                    if (meydan.Harita[i, j].Asker != null)
                                    {
                                        Console.Write(meydan.Harita[i, j].Asker.Ad);
                                    }
                                    else
                                    {
                                        Console.Write(" ___ ");
                                    }
                                }
                                Console.WriteLine();
                            }
                            Console.WriteLine("Press Enter");
                            Console.ReadKey();
                        }

                        if (kirmiziTakim.HayattakiAskerSayisi == 0)
                        {
                            GameOver();
                            gameState = false;
                        }
                    }
                }

                // Kirmizi Takim Siradaki Asker
                bool kirmiziState = false;
                while (!kirmiziState)
                {
                    int kirmiziTakimSiradakiAsker = rnd.Next(0, kirmiziTakim.Birlik.Length);

                    if (kirmiziTakim.Birlik[kirmiziTakimSiradakiAsker].HayattaMi)
                    {
                        kirmiziState = true;
                        int x = kirmiziTakim.Birlik[kirmiziTakimSiradakiAsker].KararVer(maviTakim);

                        if (x == 0)
                        {
                            for (int i = 0; i < 16; i++)
                            {
                                for (int j = 0; j < 16; j++)
                                {
                                    if (meydan.Harita[i, j].Asker != null)
                                    {
                                        Console.Write(meydan.Harita[i, j].Asker.Ad);
                                    }
                                    else
                                    {
                                        Console.Write(" ___ ");
                                    }
                                }
                                Console.WriteLine();
                            }

                            Console.WriteLine("Press Enter");
                            Console.ReadKey();
                        }

                        if (maviTakim.HayattakiAskerSayisi == 0)
                        {
                            GameOver();
                            gameState = false;
                        }
                    }
                }
            }
        }
Beispiel #29
0
        //rastsal olarak asker üretmek
        static void birlikUret(int yuzbasiSayi, int tegmenSayi, int yuzbasiSayi2, int tegmenSayi2)
        {
            int[] temp = new int[2];
            temp[0] = 0; temp[1] = 0;
            Ermeydani meydan  = new Ermeydani();
            Takim     takım   = new Takim();
            Er        er      = new Er(true, takım, 100, temp);
            Tegmen    tegmen  = new Tegmen(true, takım, 100, temp);
            Yuzbasi   yuzbasi = new Yuzbasi(true, takım, 100, temp);
            Bolge     bolge   = new Bolge();

            int i = 0;

            if (yuzbasiSayi == 2)
            {
                takım.Birlik1[i] = yuzbasi;
                i++;
            }
            if (tegmenSayi == 1)
            {
                takım.Birlik1[i] = tegmen;
                i++;
            }
            else
            {
                takım.Birlik1[i] = tegmen;
                i++;
                takım.Birlik1[i] = tegmen;
                i++;
            }
            for (int x = i; x < 7; x++)
            {
                takım.Birlik1[x] = er;
            }


            i = 0;

            if (yuzbasiSayi2 == 2)
            {
                takım.Birlik2[i] = yuzbasi;
                i++;
            }
            if (tegmenSayi2 == 1)
            {
                takım.Birlik2[i] = tegmen;
                i++;
            }
            else
            {
                takım.Birlik2[i] = tegmen;
                i++;
                takım.Birlik2[i] = tegmen;
                i++;
            }
            for (int x = i; x < 7; x++)
            {
                takım.Birlik2[x] = er;
            }


            for (int a = 0; a < 7; a++)
            {
                meydan.askerYerlestir(takım.Birlik1[a], takım.Birlik2[a], bolge.harita, a);
            }
        }
Beispiel #30
0
 public Yuzbasi(Bolge bolge, Takim takim, Ermeydani ermeydani) : base(bolge, takim, ermeydani)
 {
 }