public override void HareketEt(StreamWriter streamWriter) { string takım; takım = hangiTakım ? "Takım 1" : "Takım 2"; bool yukarı = rd.Next(2) == 1 ? true : false; if (yaşıyorMu) { if (Koordinat.ReturnY() > 0 && yukarı == true)//Yukarı git { Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY(), false); Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY() - 1, true); streamWriter.WriteLine(takım + "Er'i yukarı hareket etti." + " Koordinatları" + Koordinat.ReturnX().ToString() + " " + Koordinat.ReturnY().ToString()); } else if (Koordinat.ReturnX() < 15 && yukarı == true)//Mümkün değilse sağa git. { Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY(), false); Koordinat = new Bolge(Koordinat.ReturnX() + 1, Koordinat.ReturnY(), true); streamWriter.WriteLine(takım + "Er'i sola hareket etti." + " Koordinatları" + Koordinat.ReturnX().ToString() + " " + Koordinat.ReturnY().ToString()); } if (Koordinat.ReturnY() < 15 && yukarı == false)//Aşağı git { Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY(), false); Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY() + 1, true); streamWriter.WriteLine(takım + "Er'i aşağı hareket etti." + " Koordinatları" + Koordinat.ReturnX().ToString() + " " + Koordinat.ReturnY().ToString()); } else if (Koordinat.ReturnX() > 0 && yukarı == false)//Mümkün değilse sola git. { Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY(), false); Koordinat = new Bolge(Koordinat.ReturnX() + 1, Koordinat.ReturnY(), true); streamWriter.WriteLine(takım + "Er'i sağa hareket etti." + " Koordinatları" + Koordinat.ReturnX().ToString() + " " + Koordinat.ReturnY().ToString()); } } }
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 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); }
public override void HareketEt(StreamWriter streamWriter) { string takım; takım = hangiTakım ? "Takım 1" : "Takım 2"; int gidilecekKonum = rd.Next(3); if (yaşıyorMu) { if (Koordinat.ReturnY() > 0 && gidilecekKonum == 0)//Yukarı git { Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY(), false); Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY() - 1, true); streamWriter.WriteLine(takım + "Teğmen'i yukarı hareket etti." + " Koordinatları" + Koordinat.ReturnX().ToString() + " " + Koordinat.ReturnY().ToString()); } else if (Koordinat.ReturnY() < 15 && gidilecekKonum == 1)//Aşağı git { Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY(), false); Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY() + 1, true); streamWriter.WriteLine(takım + "Teğmen'i aşağı hareket etti." + " Koordinatları" + Koordinat.ReturnX().ToString() + " " + Koordinat.ReturnY().ToString()); } else if (Koordinat.ReturnX() > 0 && gidilecekKonum == 2)//Sağa git { Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY(), false); Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY(), true); streamWriter.WriteLine(takım + "Teğmen'i sağa hareket etti." + " Koordinatları" + Koordinat.ReturnX().ToString() + " " + Koordinat.ReturnY().ToString()); } else if (Koordinat.ReturnX() < 15 && gidilecekKonum == 3)//Sola git { Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY(), false); Koordinat = new Bolge(Koordinat.ReturnX(), Koordinat.ReturnY() + 1, true); streamWriter.WriteLine(takım + "Teğmen'i sola hareket etti." + " Koordinatları" + Koordinat.ReturnX().ToString() + " " + Koordinat.ReturnY().ToString()); } } }