public override void Ates_et(Ermeydani meydan) //etrafta biri var mı diye bakan fonksiyon { List <int> map = new List <int>(); map.Add(this.Look(meydan, this.Koordinat.x + 1, this.Koordinat.y)); map.Add(this.Look(meydan, this.Koordinat.x, this.Koordinat.y + 1)); map.Add(this.Look(meydan, this.Koordinat.x - 1, this.Koordinat.y)); map.Add(this.Look(meydan, this.Koordinat.x, this.Koordinat.y - 1)); map.Add(this.Look(meydan, this.Koordinat.x + 1, this.Koordinat.y + 1)); map.Add(this.Look(meydan, this.Koordinat.x - 1, this.Koordinat.y - 1 + 1)); map.Add(this.Look(meydan, this.Koordinat.x - 1, this.Koordinat.y + 1)); map.Add(this.Look(meydan, this.Koordinat.x + 1, this.Koordinat.y - 1)); if (map.Contains(2)) // eğer düşman varsa 1 kare mesafesinde ateş eder { switch (map.FindIndex(i => i == 2)) { case 0: Fire(meydan.Harita[this.Koordinat.x + 1, this.Koordinat.y].asker); break; case 1: Fire(meydan.Harita[this.Koordinat.x, this.Koordinat.y + 1].asker); break; case 2: Fire(meydan.Harita[this.Koordinat.x - 1, this.Koordinat.y].asker); break; case 3: Fire(meydan.Harita[this.Koordinat.x, this.Koordinat.y - 1].asker); break; } } }
} // ..... // public int Look(Ermeydani meydan, int x, int y) { if (x < 0 || x > 15 || y < 0 || y > 15) { return(-1); } else { if (meydan.Harita[x, y].isempty) { return(0); } else { if (meydan.Harita[x, y].asker.team == this.team) { return(1); } else { return(2); } } } }
public override void Move_beach(Ermeydani meydan) { List <int> map = new List <int>(); map.Add(this.Look(meydan, this.Koordinat.x + 1, this.Koordinat.y)); map.Add(this.Look(meydan, this.Koordinat.x, this.Koordinat.y + 1)); map.Add(this.Look(meydan, this.Koordinat.x - 1, this.Koordinat.y)); map.Add(this.Look(meydan, this.Koordinat.x, this.Koordinat.y - 1)); map.Add(this.Look(meydan, this.Koordinat.x + 1, this.Koordinat.y + 1)); map.Add(this.Look(meydan, this.Koordinat.x - 1, this.Koordinat.y - 1 + 1)); map.Add(this.Look(meydan, this.Koordinat.x - 1, this.Koordinat.y + 1)); map.Add(this.Look(meydan, this.Koordinat.x + 1, this.Koordinat.y - 1)); if (map.Contains(2)) // eğer düşman varsa 1 kare mesafesinde ateş eder { switch (map.FindIndex(i => i == 2)) { case 0: Walk(meydan.Harita[this.Koordinat.x + 1, this.Koordinat.y].asker); break; case 1: Walk(meydan.Harita[this.Koordinat.x, this.Koordinat.y + 1].asker); break; case 2: Walk(meydan.Harita[this.Koordinat.x - 1, this.Koordinat.y].asker); break; case 3: Walk(meydan.Harita[this.Koordinat.x, this.Koordinat.y - 1].asker); break; } } }
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 void Look_around(Ermeydani meydan) //etrafta biri var mı diye bakan fonksiyon { List<int> map = new List<int>(); map.Add(this.Look(meydan, this.Koordinat.x + 1, this.Koordinat.y)); map.Add(this.Look(meydan, this.Koordinat.x, this.Koordinat.y + 1)); map.Add(this.Look(meydan, this.Koordinat.x - 1, this.Koordinat.y)); map.Add(this.Look(meydan, this.Koordinat.x, this.Koordinat.y - 1)); if (map.Contains(2)) { // eğer düşman varsa ateş eder switch (map.FindIndex(i => i == 2)) { case 0: Fire(meydan.Harita[this.Koordinat.x + 1, this.Koordinat.y].asker); break; case 1: Fire(meydan.Harita[this.Koordinat.x, this.Koordinat.y + 1].asker); break; case 2: Fire(meydan.Harita[this.Koordinat.x - 1, this.Koordinat.y].asker); break; case 3: Fire(meydan.Harita[this.Koordinat.x, this.Koordinat.y - 1].asker); break; } } else { } }
public Takim(String isim, Bolge bas_bolge, Ermeydani tahta) { this.tahta = tahta; this.isim = isim; this.baslangicBolge = bas_bolge; random = new Random(); TakimiYarat(); }
public Asker(Bolge bolge, Takim takim, Ermeydani ermeydani) { this.koordinat = bolge; this.takim = takim; this.ermeydani = ermeydani; can = 100; canlimi = true; random = new Random(); }
static void Main(string[] args) { /* * Örnek olması açısında iskelet kod hazır olarak verilmiştir. İmplementasyonunuz bunun üzerinden gerçekleştiriniz. */ Ermeydani meydan = new Ermeydani(); meydan.Basla(); }
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. */ //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); } } }
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) { for (int i = 0; i < 16; i++) { for (int j = 0; j < 16; j++) { Ermeydani.harita[i, j] = new Bolge(); } } Ermeydani.takimA.takım_olusturma(); Ermeydani.takimB.takım_olusturma(); Ermeydani.kapışma(); Console.ReadKey(); }
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 override void HaraketEt(Ermeydani ermeydani) { int secim = rand.Next(101); if (secim < 25) //yukari haraket et { if (Koordinat.Y >= 1) { int x = Koordinat.X; int y = Koordinat.Y; Koordinat = ermeydani.Harita[x, (y - 1)]; Console.WriteLine($"x: {x}, y: {y}"); } } else if (secim < 50) //asagi haraket et { if (Koordinat.Y <= 14) { int x = Koordinat.X; int y = Koordinat.Y; Koordinat = ermeydani.Harita[x, (y + 1)]; Console.WriteLine($"x: {x}, y: {y}"); } } else if (secim < 75) //saga haraket et { if (Koordinat.X <= 14) { int x = Koordinat.X; int y = Koordinat.Y; Koordinat = ermeydani.Harita[(x + 1), y]; Console.WriteLine($"x: {x}, y: {y}"); } } else //sola haraket et { if (Koordinat.X >= 1) { int x = Koordinat.X; int y = Koordinat.Y; Koordinat = ermeydani.Harita[(x - 1), y]; Console.WriteLine($"x: {x}, y: {y}"); } } }
public override void HaraketEt(Ermeydani em, Random r) { int secim = r.Next(4); try { //Yukarı if (secim == 0) { if (Koordinat.y < 15 && em.Harita[Koordinat.x, Koordinat.y + 1] == null) { Koordinat.y += 1; em.Harita[Koordinat.x, Koordinat.y] = null; } } else if (secim == 1)//Aşağı { if (Koordinat.y > 0 && em.Harita[Koordinat.x, Koordinat.y - 1] == null) { Koordinat.y -= 1; em.Harita[Koordinat.x, Koordinat.y] = null; } } else if (secim == 2) // sağ { if (Koordinat.x < 15 && em.Harita[Koordinat.x + 1, Koordinat.y] == null) { Koordinat.x += 1; em.Harita[Koordinat.x, Koordinat.y] = null; } } else // sol { if (Koordinat.x > 0 && em.Harita[Koordinat.x - 1, Koordinat.y] == null) { Koordinat.x -= 1; em.Harita[Koordinat.x, Koordinat.y] = null; } } } catch (Exception) { throw new NotImplementedException(); } }
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); }
void Ekle(Ermeydani em, Er a, int dongu, int tk) { Bolge b; while (indis < dongu) { a = new Er(); 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 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(); } }
static void Main(string[] args) { /* * Örnek olması açısında iskelet kod hazır olarak verilmiştir. İmplementasyonunuz bunun üzerinden gerçekleştiriniz. */ //please why... Ermeydani meydan = new Ermeydani(); Console.WriteLine("---------------------------------"); meydan.haritaciz(); int i = 0; while (i != 6) { meydan.takim1.Birlik[i].HaraketEt(meydan.Harita); meydan.haritaciz(); i = i + 1; } Console.ReadLine(); }
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(Bolge bolge, Takim takim, Ermeydani ermeydani) : base(bolge, takim, ermeydani) { }
public Er(Bolge bolge, Takim takim, Ermeydani ermeydani) : base(bolge, takim, ermeydani) { random = new Random(); }
public Takim(string name, Ermeydani map, Point start, Point end) { Name = name; Map = map; Initialize(start, end); }
public Yuzbasi(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(); }
// ..... // //Abstract sınıfların implementasyonları çoçuk sınıflarda gerçekleştirilmelidir. public abstract void HaraketEt(Ermeydani ermeydani);
//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); } }
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; } } } } }
static void Main(string[] args) { Ermeydani Meydan = new Ermeydani(); for (int i = 0; i < 16; i++) { for (int j = 0; j < 16; j++) { Meydan.Harita[i, j] = new Bolge(); } } Takim A = new Takim(); Takim B = new Takim(); for (int i = 0; i < 7; i++) { A.Birlik[i] = new Er(); A.Birlik[i] = new Tegmen(); A.Birlik[i] = new Yuzbasi(); } for (int i = 0; i < 7; i++) { B.Birlik[i] = new Er(); B.Birlik[i] = new Tegmen(); B.Birlik[i] = new Yuzbasi(); } int sayacA = 0; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (sayacA <= 6) { Meydan.Harita[i, j].BolgedekiAsker = A.Birlik[sayacA]; sayacA++; } } } int sayacB = 0; for (int i = 15; i > 11; i--) { for (int j = 15; j > 11; j--) { if (sayacB <= 6) { Meydan.Harita[i, j].BolgedekiAsker = B.Birlik[sayacB]; sayacB++; } } } int sayac = 1; while (true) { Console.WriteLine("Ermeydanı oynunu"); foreach (var item in Meydan.Harita) { if (sayac > 16) { sayac = 1; System.Console.WriteLine(""); } if (item.BolgedekiAsker == null) { Console.Write("{0} ", "[ ]"); } else { Console.Write("{0} ", "[*]"); } sayac++; } Thread.Sleep(1000); Console.Clear(); } }