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; }
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); }
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; } } } }
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); }
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); }
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; } }
public Asker(Bolge bolge, Takim takim, Ermeydani ermeydani) { this.koordinat = bolge; this.takim = takim; this.ermeydani = ermeydani; can = 100; canlimi = true; random = new Random(); }
// 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; }
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(); }
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); } } }
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; } } }
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); }
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() }
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(); } }
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); } }
public Asker(bool canlı, Takim takım, int saglık, int[] koordinat) { Canlı = canlı; Saglık = saglık; Koordinat = koordinat; }
public Er(Bolge bolge, Takim takim, Ermeydani ermeydani) : base(bolge, takim, ermeydani) { random = new Random(); }
public Tegmen(Bolge bolge, Takim takim, Ermeydani ermeydani) : base(bolge, takim, ermeydani) { }
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);
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; } } } } }
//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); } }
public Yuzbasi(Bolge bolge, Takim takim, Ermeydani ermeydani) : base(bolge, takim, ermeydani) { }