示例#1
0
        private void TakimiYarat()
        {
            int k = 0;

            int[] askerRütbeleri = new int[3];
            askerRütbeleri[0] = random.Next(0, 2);
            askerRütbeleri[1] = random.Next(1, 3);
            askerRütbeleri[2] = 7 - askerRütbeleri[1] - askerRütbeleri[0];
            for (int i = 0; i < askerRütbeleri.Length; i++)
            {
                for (int j = 0; j < askerRütbeleri[i]; j++)
                {
                    Bolge a = tahta.BaslangıcNoktasıVer(baslangicBolge, 5);
                    switch (i)
                    {
                    case 0:
                        birlik[k] = new Yuzbasi(a, this, tahta);
                        break;

                    case 1:
                        birlik[k] = new Tegmen(a, this, tahta);
                        break;

                    case 2:
                        birlik[k] = new Er(a, this, tahta);
                        break;
                    }
                    a.Doldur(birlik[k]);
                    k++;
                }
            }
        }
示例#2
0
        public void create_team(int x, int y, bool team)
        {
            Asker a = new Yuzbasi();

            a.putcoor(x + 2, y + 2);
            a.team    = team;
            birlik[0] = a;
            a         = new Er();
            a.putcoor(x + 4, y + 4);
            a.team    = team;
            birlik[1] = a;
            a         = new Er();
            a.putcoor(x + 4, y);
            a.team    = team;
            birlik[2] = a;
            a         = new Er();
            a.putcoor(x, y + 4);
            a.team    = team;
            birlik[3] = a;
            a         = new Er();
            a.putcoor(x, y);
            a.team    = team;
            birlik[4] = a;
            a         = new Tegmen();
            a.putcoor(x + 1, y + 1);
            a.team    = team;
            birlik[5] = a;
            a         = new Tegmen();
            a.putcoor(x + 3, y + 3);
            a.team    = team;
            birlik[6] = a;
        }
示例#3
0
 public Takim()
 {
     for (int i = 0; i < 5; i++)
     {
         birlik[i] = new Er();
     }
     birlik[5] = new Tegmen();
     birlik[6] = new Yuzbasi();
 }
示例#4
0
 public Takim()
 {
     birlik[0] = new Yuzbasi();
     birlik[1] = new Tegmen();
     birlik[2] = new Tegmen();
     birlik[3] = new Er();
     birlik[4] = new Er();
     birlik[5] = new Er();
     birlik[6] = new Er();
     saglam    = true;
 }
        public void takım_olusturma()
        {
            int x = rastgele.Next(4);

            if (x == 0)//1 Teğmenli Takım.
            {
                birlik[0] = new Tegmen();
                birlik[0].konumbelirle();

                for (int i = 1; i < 7; i++)
                {
                    birlik[i] = new Er();
                    birlik[i].konumbelirle();
                }
            }//1 Teğmenli takım.
            else if (x == 1)//2 Twğmenli takım.
            {
                birlik[0] = new Tegmen();
                birlik[0].konumbelirle();
                birlik[1] = new Tegmen();
                birlik[1].konumbelirle();
                for (int i = 2; i < 7; i++)
                {
                    birlik[i] = new Er();
                    birlik[i].konumbelirle();
                }
            }//2 Teğmenli takım.
            else if (x == 2)//1 Yüzbaşılı 1 Teğmenli takım.
            {
                birlik[0] = new Yuzbasi();
                birlik[0].konumbelirle();
                birlik[1] = new Tegmen();
                birlik[1].konumbelirle();
                for (int i = 2; i < 7; i++)
                {
                    birlik[i] = new Er();
                    birlik[i].konumbelirle();
                }
            }    //1 Yüzbaşılı 1 Teğmenli takım.
            else //1 Yüzbaşılı 2 Teğmenli takım.
            {
                birlik[0] = new Yuzbasi();
                birlik[0].konumbelirle();
                birlik[1] = new Tegmen();
                birlik[1].konumbelirle();
                birlik[2] = new Tegmen();
                birlik[2].konumbelirle();
                for (int i = 3; i < 7; i++)
                {
                    birlik[i] = new Er();
                    birlik[i].konumbelirle();
                }
            }//1 Yüzbaşılı 2 Teğmenli takım.
        }
示例#6
0
        // Create team members and set their locations
        void Initialize(Point start, Point end)
        {
            Random rand = new Random(DateTime.Now.Millisecond);

            Id        = rand.Next();
            this.Team = new List <Asker>();
            int num_Er = 0, num_Tegmen = 0, num_Yuzbasi = 0;
            int x, y;

            Asker soldier;

            for (int c = 0; c < Size; c++)
            {
                soldier = null;
                while (soldier == null)
                {
                    double roll = rand.NextDouble();

                    // 20% Yuzbasi
                    if (.0 < roll && roll <= .2 && num_Yuzbasi < 1)
                    {
                        soldier      = new Yuzbasi();
                        num_Yuzbasi += 1;
                    }

                    // 20% Tegmen
                    if (.2 < roll && roll <= .4 && num_Tegmen < 2)
                    {
                        soldier     = new Tegmen();
                        num_Tegmen += 1;
                    }

                    // 60% Er
                    if (.4 < roll && roll <= 1)
                    {
                        soldier = new Er();
                        num_Er += 1;
                    }
                }

                // Set initial location
                while (soldier.Location == null)
                {
                    x = rand.Next(start.X, end.X);
                    y = rand.Next(start.Y, end.Y);
                    Map.Mapping[x, y].MoveIn(soldier);
                }

                Map.Log.WriteLine(String.Format("{0} - {1} at {2}", (c + 1), soldier, soldier.Location));
                Team.Add(soldier);
                soldier.Team = this;
            }
        }
        void Ekle(Ermeydani em, Yuzbasi a, int dongu, int tk)
        {
            Bolge b;

            while (indis < dongu)
            {
                a = new Yuzbasi();
                b = new Bolge();
                do
                {
                    b.x         = r.Next(5) + tk;
                    b.y         = r.Next(5) + tk;
                    b.takım     = tk;
                    a.Koordinat = b;
                }while (em.Harita[b.x, b.y] != null);

                em.Harita[b.x, b.y] = a.Koordinat;
                birlik[indis]       = a;
                indis++;
            }
        }
        public void Olustur(Ermeydani em, int tk)
        {
            int     secim, rand = 0;
            Yuzbasi yb  = new Yuzbasi();
            Tegmen  tgm = new Tegmen();
            Er      er  = new Er();

            if (tk == 1)
            {
                rand = 0;
            }
            else if (tk == 2)
            {
                rand = 11;
            }

            Ekle(em, yb, 1, rand);
            secim = r.Next(2) + 2;
            Ekle(em, tgm, secim, rand);
            Ekle(em, er, 7, rand);
        }
        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;
                        }
                    }
                }
            }
        }
示例#10
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);
            }
        }
示例#11
0
        public List <Bolge> takimkonum = new List <Bolge>(); // why not use birlik ? this is stupid // well because i need to send some kind of bolge array to the map // but this is not an array this is a list ? // Shut up! don't use logic to me !

        public Takim(bool takimtype)                         //constructor istenilene gore haritanin karşı köşelerinde takım olustur konumlar hardcoded ama gelistirilebilir belki bool yerine bir int ile secim yapıp loop icine koyabilirdim uretimi
        {
            if (takimtype)
            {
                //this is horrible
                Bolge er0bolge = new Bolge();
                er0bolge.X = 0;
                er0bolge.Y = 1;
                takimkonum.Add(er0bolge);
                birlik[0] = new Er(er0bolge, "A"); // daha iyi bir çözüm yolu olabilirdi

                Bolge er1bolge = new Bolge();
                er1bolge.X = 1;
                er1bolge.Y = 1;
                takimkonum.Add(er1bolge);
                birlik[1] = new Er(er1bolge, "A"); // daha iyi bir çözüm yolu olabilirdi

                Bolge er2bolge = new Bolge();
                er2bolge.X = 2;
                er2bolge.Y = 1;
                takimkonum.Add(er2bolge);
                birlik[2] = new Er(er2bolge, "A"); // daha iyi bir çözüm yolu olabilirdi

                Bolge er3bolge = new Bolge();
                er3bolge.X = 3;
                er3bolge.Y = 1;
                takimkonum.Add(er3bolge);
                birlik[3] = new Er(er3bolge, "A"); // daha iyi bir çözüm yolu olabilirdi

                Bolge teg0bolge = new Bolge();
                teg0bolge.X = 0;
                teg0bolge.Y = 0;
                takimkonum.Add(teg0bolge);
                birlik[4] = new Tegmen(teg0bolge, "A");

                Bolge teg1bolge = new Bolge();
                teg1bolge.X = 2;
                teg1bolge.Y = 0;
                takimkonum.Add(teg1bolge);
                birlik[5] = new Tegmen(teg1bolge, "A");

                Bolge yuzbolge = new Bolge();
                yuzbolge.X = 1;
                yuzbolge.Y = 0;
                takimkonum.Add(yuzbolge);
                birlik[6] = new Yuzbasi(yuzbolge, "B");
            }
            else
            {
                Bolge er0bolge = new Bolge();
                er0bolge.X = 12;
                er0bolge.Y = 14;
                takimkonum.Add(er0bolge);
                birlik[0] = new Er(er0bolge, "B"); // daha iyi bir çözüm yolu olabilirdi

                Bolge er1bolge = new Bolge();
                er1bolge.X = 13;
                er1bolge.Y = 14;
                takimkonum.Add(er1bolge);
                birlik[1] = new Er(er1bolge, "B"); // daha iyi bir çözüm yolu olabilirdi

                Bolge er2bolge = new Bolge();
                er2bolge.X = 14;
                er2bolge.Y = 14;
                takimkonum.Add(er2bolge);
                birlik[2] = new Er(er2bolge, "B"); // daha iyi bir çözüm yolu olabilirdi

                Bolge er3bolge = new Bolge();
                er3bolge.X = 15;
                er3bolge.Y = 14;
                takimkonum.Add(er3bolge);
                birlik[3] = new Er(er3bolge, "B"); // daha iyi bir çözüm yolu olabilirdi

                Bolge teg0bolge = new Bolge();
                teg0bolge.X = 13;
                teg0bolge.Y = 15;
                takimkonum.Add(teg0bolge);
                birlik[4] = new Tegmen(teg0bolge, "B");

                Bolge teg1bolge = new Bolge();
                teg1bolge.X = 15;
                teg1bolge.Y = 15;
                takimkonum.Add(teg1bolge);
                birlik[5] = new Tegmen(teg1bolge, "B");

                Bolge yuzbolge = new Bolge();
                yuzbolge.X = 14;
                yuzbolge.Y = 15;
                takimkonum.Add(yuzbolge);
                birlik[6] = new Yuzbasi(yuzbolge, "B");
            }
        }