private void pb_Click(object sender, EventArgs e) { Helper.BoyalariKaldir(this); PictureBox pb = sender as PictureBox; if (pb != null) { seciliKare = (Kare)pb.Tag; if (seciliKare.UzerindeBulunanTas != null) { string text = Helper.GetXCoordinatByKare(this) + " - " + (seciliKare.KonumY + 1).ToString(); if ((string.Equals(lblSira.Tag, "Beyaz") && seciliKare.UzerindeBulunanTas.TasRengi == TakimRengi.Beyaz) || (string.Equals(lblSira.Tag, "Siyah") && seciliKare.UzerindeBulunanTas.TasRengi == TakimRengi.Siyah) ) { lblSeciliKare.Text = text; Helper.GidebilecegiYerleriBoya(this); } else { lblSeciliKare.Text = "Karşı takımın taşını seçemezsiniz!!"; } } else { lblSeciliKare.Text = "Seçtiğiniz karede taş yok"; } } }
private void btnKare_Click(object sender, EventArgs e) { Kare kare = new Kare(); kare.sekilAdi = "Kare"; kare.genislik = 9; kare.yukseklik = 9; kare.Goster(); }
static void Main(string[] args) { Cember cember = new Cember(); cember.alanHesapla(5); cember.cevreHesapla(12); Kare kare = new Kare(); kare.alanHesapla(4); kare.cevreHesapla(10); }
static void Main(string[] args) { Kare kare; Dikdortgen dikdortgen; DikUcgen dikUcgen; EskenarUcgen eskenarUcgen; Daire daire; string girilenSekil; Console.WriteLine("Lütfen işlem yapmak istediğiniz şekili giriniz(Kare, Dikdörtgen, Dik Üçgen, Eşkenar Üçgen, Daire):"); girilenSekil = Console.ReadLine(); if (girilenSekil == "Kare") { kare = new Kare(); Console.Write("Kenar uzunluğu: "); kare.Uzunkenar = Convert.ToDouble(Console.ReadLine()); KareHesapla(kare, alanVeyaCevre); } else if (girilenSekil == "Dikdörtgen") { dikdortgen = new Dikdortgen(); Console.Write("Kısa Kenar: "); dikdortgen.KisaKenar = Convert.ToDouble(Console.ReadLine()); Console.Write("Uzun Kenar: "); dikdortgen.Uzunkenar = Convert.ToDouble(Console.ReadLine()); DikdortgenHesapla(dikdortgen, alanVeyaCevre); } else if (girilenSekil == "Dik Üçgen") { dikUcgen = new DikUcgen(); Console.Write("Taban Kenar: "); dikUcgen.TabanKenar = Convert.ToDouble(Console.ReadLine()); Console.Write("Yükseklik: "); dikUcgen.Yukseklik = Convert.ToDouble(Console.ReadLine()); DikUcgenHesapla(dikUcgen, alanVeyaCevre); } else if (girilenSekil == "Eşkenar Üçgen") { eskenarUcgen = new EskenarUcgen(); Console.Write("Taban Kenar: "); eskenarUcgen.TabanKenar = Convert.ToDouble(Console.ReadLine()); Console.Write("Yükseklik: "); eskenarUcgen.Yukseklik = Convert.ToDouble(Console.ReadLine()); EskenarUcgenHesapla(eskenarUcgen, alanVeyaCevre); } else if (girilenSekil == "Daire") { daire = new Daire(); Console.Write("Yarı çap: "); daire.YariCap = Convert.ToDouble(Console.ReadLine()); DaireHesapla(daire, alanVeyaCevre); } }
private void btnIlerleYe_Click(object sender, EventArgs e) { if (lbX.SelectedItem == null || lbY.SelectedItem == null) { lblNot.Text = "Gitmek isteğiniz koordinatı seçin"; return; } int istenenX = Helper.GetXCoord(lbX.SelectedItem.ToString()); int istenenY = int.Parse(lbY.SelectedItem.ToString()) - 1; Kare gidilmekIstenenKare = Helper.GetIstenenKare(istenenX, istenenY); if (seciliKare != null && seciliKare.UzerindeBulunanTas != null) { bool gidebilirmi = seciliKare.UzerindeBulunanTas.IlerleyebilirMi(gidilmekIstenenKare); if (gidebilirmi) { if (Helper.SahMi(this, lblSira)) { MessageBox.Show("Karşı takım size şah çekmiş bu durumdan kurtulmaya çalışın"); lblNot.Text = "Şahı koruyunn"; return; } } if (gidebilirmi) { PictureBox seciliPb = Helper.GetPictureBox(this, seciliKare); PictureBox istenenKare = Helper.GetPictureBox(this, gidilmekIstenenKare); Image img = seciliPb.Image; istenenKare.Image = img; seciliPb.Image = null; seciliKare.UzerindeBulunanTas.Ilerle(gidilmekIstenenKare); string sira = lblSira.Tag.ToString(); lblSira.Tag = sira == "Beyaz"?"Siyah":"Beyaz"; lblSira.Text = sira == "Beyaz"?"Sıra Siyahlı Oyuncuda":"Sıra Beyazlı Oyuncuda"; } seciliKare = null; if (Helper.SahMi(this, lblSira)) { MessageBox.Show("ŞAH!!!!!!"); lblNot.Text = "ŞAH!!!!"; } } else { lblNot.Text = "Önce hamle yapmak istediğiniz taşı seçin"; } }
private static void Main(string[] args) { Dikdortgen dikdortgen = new Dikdortgen(); Console.WriteLine("dikdörtgen: {0}", dikdortgen.AlanHesapla(5, 10)); Kare kare = new Kare(); Console.WriteLine("kare: {0}", kare.AlanHesapla(5, 10)); Kup kup = new Kup(); Console.WriteLine("Kup: {0}", kup.AlanHesapla(5, 10, 5)); Console.ReadLine(); }
public static void GidebilecegiYerleriBoya(FrmMain form) { foreach (var item in form.Controls) { PictureBox pb = item as PictureBox; if (pb != null && pb.Name != "pbTahta") { Kare kare = (Kare)pb.Tag; bool gidebilirmi = form.seciliKare.UzerindeBulunanTas.IlerleyebilirMi(kare); if (gidebilirmi) { pb.BorderStyle = BorderStyle.Fixed3D; } } } }
private void Form1_Load(object sender, EventArgs e) { //object initializer--> dikdortgen orneginde space e basınca yazman gerekeni gösteriyor tüm property leri //sırayla listeliyor // hiyerarşi olarak constructordan sonra çalışır Kare kare = new Kare(); kare.X = 10; MessageBox.Show($"karenin alanı: {kare.AlanHesapla()}"); Dikdortgen dikdortgen = new Dikdortgen() { X = 5, Y = 12 }; MessageBox.Show($"dikdortgenin kosegeni: {dikdortgen.KosegenHesapla()}"); sekiller.Add(kare); sekiller.Add(dikdortgen); // polymorphism // bir nesne üzerinden bir sürü nesneyi toplayabildik // birden fazla farklı şeklin kalıtımla ortak classında tutulabilmesini sağlar. // kareye özel bir metod olsaydı if yazıp is demek zorundaydık ! // SOLID prensipleri Sekil dikdortgen2 = new Dikdortgen() { X = 3, Y = 4 }; Sekil kare2 = new Kare() { X = 5 }; foreach (Sekil sekil in sekiller) { //if (sekil is Kare kk) //{ // MessageBox.Show($"şekil alanı: {kk.AlanHesapla()}"); //} //else if (sekil is Dikdortgen dd) //{ // MessageBox.Show($"şekil alanı: {dd.AlanHesapla()}"); //} MessageBox.Show($"seklin alanı: {sekil.AlanHesapla()}"); } }
public static bool SahMi(FrmMain form, Label lblSira) { bool sahmi = false; if (string.Equals(lblSira.Tag.ToString(), "Beyaz"))//sıra beyazdaysa siyahın şah çekme olasılığı var { foreach (var item in form.Controls) { PictureBox pb = item as PictureBox; if (pb != null && pb.Name != "pbTahta") { Kare kare = (Kare)pb.Tag; if (kare.UzerindeBulunanTas != null && kare.UzerindeBulunanTas.TasRengi == TakimRengi.Siyah) {//tüm siyah taşlar karşı tarafın şahını yiyebilir mi diye kontrol et //beyaz şah siyahlar tarafından bir sonraki el yenebilir mi sahmi = kare.UzerindeBulunanTas.IlerleyebilirMi(GetSah(TakimRengi.Beyaz)); if (sahmi) { break; } } } } } else//sıra siyahdaysa beyazın şah çekme olasılığı var { foreach (var item in form.Controls) { PictureBox pb = item as PictureBox; if (pb != null && pb.Name != "pbTahta") { Kare kare = (Kare)pb.Tag; if (kare.UzerindeBulunanTas != null && kare.UzerindeBulunanTas.TasRengi == TakimRengi.Beyaz) {//tüm siyah taşlar karşı tarafın şahını yiyebilir mi diye kontrol et //siyah şah beyazlar tarafından bir sonraki el yenebilir mi sahmi = kare.UzerindeBulunanTas.IlerleyebilirMi(GetSah(TakimRengi.Siyah)); if (sahmi) { break; } } } } } return(sahmi); }
public static PictureBox GetPictureBox(FrmMain form, Kare kare) { foreach (var item in form.Controls) { PictureBox pb = item as PictureBox; if (pb != null && pb.Name != "pbTahta") { int x = int.Parse(pb.Name.Substring(2, 1)); int y = int.Parse(pb.Name.Substring(3, 1)); if (kare.KonumX == x && kare.KonumY == y) { return(pb); } } } return(null); }
private void Form1_Load(object sender, EventArgs e) { Kare kare = new Kare(); kare.X = 10; //MessageBox.Show($"karenin alanı: {kare.AlanHesapla()}"); // Object Initializer : Aynı constructor gibi tek satırda bir nesnenin instance ını almaya yarıyor. Constructordan sonra calısır. Dikdortgen dikdortgen = new Dikdortgen() { X = 5, // Burada bir validation kontrolü yapacaksak try catch kullanmalıyız. Y = 12 // Her bosluga bastıgımızda propertyleri getirecek ve degerleri burada hemen verebilecegiz. }; //dikdortgen.X = 5; Object initializer yaptıgımızda tek tek propertylere boyle deger vermemize gerek kalmıyor. //MessageBox.Show($"dikdortgenin kosegeni: {dikdortgen.KosegenHesapla()}"); sekiller.Add(kare); sekiller.Add(dikdortgen); Sekil dikdortgen2 = new Dikdortgen() // Sekil diye bir tipi abstract oldugu icin newleyemesemde tip olarak kullanabiliyorum. { X = 2, Y = 3 // İnitialize yazmazsak Sekil tipinde oldugu icin dikdortgen2.Y gelmez. }; //Sekil dikdortgen3 = new Dikdortgen(); // Sekil tipinde oldugu icin sadece sekil icerisindeki nesneleri getiriyor. Sekil kare2 = new Kare() { X = 5 }; // calısma bakımından sekile degilde ornek aldıgına bakıyor sekiller.Add(dikdortgen2); sekiller.Add(kare2); // Her nesneyi tek bir tip altında toplayabildik.Görünüş olarak Sekiller ama calısma olarak kare veya dikdortgen foreach (Sekil sekil in sekiller) // Hepsine sekil gözüyle bakıyoruz ama calısırken hepsi kendi orneklem aldıgı tipten calısıyor. Kare ise kare, dikdortgense dikdortgen { //if(sekil is Kare kk) // List in Tipini object yaptıgımızda her sekil icin kontrol yapmalıydık. // MessageBox.Show($"dikdortgenin kosegeni: {dikdortgen.KosegenHesapla()}"); MessageBox.Show($"Seklin alani: {sekil.AlanHesapla()}"); } // Kare ve dikdortgene ait ozel bir metod olsaydı gelmeyecekti ama ortakların hepsine ulasabiliriz }
private static void KareHesapla(Kare kare, string alanVeyaCevre) { Console.WriteLine("Alan Hesaplama için 'a' Çevre Hesaplama için 'ç' giriniz."); alanVeyaCevre = Console.ReadLine(); if (alanVeyaCevre == "a") { Console.WriteLine(kare.AlanHesapla()); } else if (alanVeyaCevre == "ç") { Console.WriteLine(kare.CevreHesapla()); } else { Console.WriteLine("Lütfen geçerli bir değer giriniz."); KareHesapla(kare, alanVeyaCevre); } }
private void Form1_Load(object sender, EventArgs e) { Kare kare = new Kare(); kare.X = 5; Dikdortgen dikdortgen = new Dikdortgen(); dikdortgen.X = 3; dikdortgen.Y = 4; Dikucgen ucgen = new Dikucgen(); ucgen.X = 5; ucgen.Y = 12; //MessageBox.Show($"ucgenin alani: {ucgen.AlanHesapla()}"); //MessageBox.Show($"ucgenin çevresi: {ucgen.CevreHesapla()}"); //MessageBox.Show($"ucgenin hipotenus: {ucgen.KosegenHesapla()}"); //Sekil sekil = new Sekil(); //sekil.X = 10; //MessageBox.Show($"Sekil alan: {sekil.AlanHesapla()}"); }
private void Form1_Load(object sender, EventArgs e) { Kare kare = new Kare(); kare.X = 5; Dikdortgen dikdortgen = new Dikdortgen(); dikdortgen.X = 3; dikdortgen.Y = 4; DikUcgen DikUcgen = new DikUcgen(); DikUcgen.X = 5; DikUcgen.Y = 12; //MessageBox.Show($"ucgen alanı: {DikUcgen.AlanHesapla()}"); //MessageBox.Show($"ucgen cevresi: {DikUcgen.CevreHesapla()}"); //MessageBox.Show($"hipotenüs: {DikUcgen.KosegenHesapla()}"); //Sekil sekil = new Sekil(); //şekil abstract olduğu için sadece kalıtım yapılıor ulaşılamıyor //sekil.X = 10; //MessageBox.Show($"sekil alan: {sekil.AlanHesapla()}"); }
// Classlar defaulta internal oldugu icin buradan farklı namespace e sahip Geometri.Lib in icindeki hiç bir nesneye erisemem. Ancak o classı ve ondan kalıtım alan classları public yaparsam erisebilirim private void Form1_Load(object sender, EventArgs e) { Kare kare = new Kare(); // Sadece kare classını public yapmam yeterli gelmez. cunkü ilk olarak sekil classına gider bu nedenle onu da public yapmalıyım. kare.X = 5; Dikdortgen dikdortgen = new Dikdortgen(); dikdortgen.X = 3; dikdortgen.Y = 4; Dikucgen ucgen = new Dikucgen(); ucgen.X = 5; ucgen.Y = 12; MessageBox.Show($"Karenin alanı: {kare.AlanHesapla()}"); MessageBox.Show($"Dikdortgen alanı: {dikdortgen.AlanHesapla()}"); MessageBox.Show($"Karenin alanı: {ucgen.AlanHesapla()}"); //Sekil sekil = new Sekil(); // Bir sınıfı abstract yaparsak ondan instance alınmasını engellemis oluruz. abstract classlardaki nesneler kalıtımla aktarılır. //sekil.X = 10; //MessageBox.Show($"Sekil alan: {sekil.AlanHesapla()}"); }
private void Form1_Load(object sender, EventArgs e) { Kare kare = new Kare(); kare.X = 10; //MessageBox.Show($"karenin alani: {kare.AlanHesapla()}"); //Object Initializer Dikdortgen dikdortgen = new Dikdortgen() { X = 5, Y = 12 }; //MessageBox.Show($"dikdortgenin kosegeni: {dikdortgen.KosegenHesapla()}"); sekiller.Add(kare); sekiller.Add(dikdortgen); Sekil dikdortgen2 = new Dikdortgen() { X = 3, Y = 4 }; Sekil kare2 = new Kare() { X = 5 }; sekiller.Add(dikdortgen2); sekiller.Add(kare2); foreach (Sekil sekil in sekiller) { MessageBox.Show($"Seklin alani: {sekil.AlanHesapla()}"); } }
private void bAlanHesapla_Click(object sender, EventArgs e) { lSonuc.Text = ""; //double sayi; if (gbUcgen.Visible && rbEskenarUcgen.Checked && tbDik1.Text == "") { MessageBox.Show("Lütfen boş giriş yapmayınız!", "HATA!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); return; } if (gbUcgen.Visible && rbDikUcgen.Checked && (tbDik1.Text == "" || tbDik2.Text == "")) { MessageBox.Show("Lütfen boş giriş yapmayınız!", "HATA!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); return; } if (gbKareDikdortgen.Visible && rbKare.Checked && tbKısaKenar.Text == "") { MessageBox.Show("Lütfen boş giriş yapmayınız!", "HATA!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); return; } if (gbKareDikdortgen.Visible && rbDikdortgen.Checked && (tbUzunKenar.Text == "" || tbKısaKenar.Text == "")) { MessageBox.Show("Lütfen boş giriş yapmayınız!", "HATA!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); return; } if (gbDaire.Visible && tbYariCap.Text == "") { MessageBox.Show("Lütfen boş giriş yapmayınız!", "HATA!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); return; } //if (!double.TryParse(tbKısaKenar.Text.Trim(), out sayi)) //{ // MessageBox.Show("Lütfen karakter girmeyiniz!", "UYARI!", // MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; //} if (rbKare.Checked == true) { Kare kare = new Kare() { TemelUzunluk = Convert.ToDouble(tbKısaKenar.Text) }; lSonuc.Text += "Karenin Alanı: " + kare.AlanHesapla() + "-Çevresi: " + kare.CevreHesapla() + "\r\n"; } if (rbDikdortgen.Checked == true) { Dikdortgen dikdortgen = new Dikdortgen() { TemelUzunluk = Convert.ToDouble(tbKısaKenar.Text), Yukseklik = Convert.ToDouble(tbUzunKenar.Text) }; lSonuc.Text += "Dikdörtgenin Alanı: " + dikdortgen.AlanHesapla() + "-Çevresi: " + dikdortgen.CevreHesapla() + "\r\n"; } if (rbEskenarUcgen.Checked == true) { EskenarUcgen eskenarUcgen = new EskenarUcgen() { TemelUzunluk = Convert.ToDouble(tbDik1.Text) }; lSonuc.Text += "Eşkenar Üçgenin Alanı: " + eskenarUcgen.AlanHesapla() + "-Çevresi: " + eskenarUcgen.CevreHesapla() + "\r\n"; } if (rbDikUcgen.Checked == true) { DikUcgen dikUcgen = new DikUcgen() { TemelUzunluk = Convert.ToDouble(tbDik1.Text), Yukseklik = Convert.ToDouble(tbDik2.Text) }; lSonuc.Text += "Dik Üçgenin Alanı: " + dikUcgen.AlanHesapla() + "-Çevresi: " + dikUcgen.CevreHesapla() + "\r\n"; } if (rbDaire.Checked == true) { Daire daire = new Daire() { TemelUzunluk = Convert.ToDouble(tbYariCap.Text) }; lSonuc.Text += "Dairenin Alanı: " + daire.AlanHesapla() + "-Çevresi: " + daire.CevreHesapla() + "\r\n"; } }
private void bAlan_Click(object sender, EventArgs e) { if (CBEU.Checked) { if (String.IsNullOrEmpty(tbTabanKenar.Text)) { rtbSonuc.Text = "Lütfen uzunluk değerlerini eksiksiz giriniz!"; } else { IUcgen U1 = new EşkenarUcgen(); U1.TabanKenar = Double.Parse(tbTabanKenar.Text); rtbSonuc.Text = U1.AlanHesapla().ToString(); } } else if (cbDU.Checked) { if (String.IsNullOrEmpty(tbDUtaban.Text) || String.IsNullOrEmpty(tbYukseklik.Text)) { rtbSonuc.Text = "Lütfen uzunluk değerlerini eksiksiz giriniz!"; } else { DikUcgen U2 = new DikUcgen(); U2.TabanKenar = Double.Parse(tbDUtaban.Text); U2.Yükseklik = Double.Parse(tbYukseklik.Text); rtbSonuc.Text = U2.AlanHesapla().ToString(); } } else if (cbDikdörtgen.Checked) { Dikdörtgen A1 = new Dikdörtgen(); if (String.IsNullOrEmpty(tbUzunKenar.Text) || String.IsNullOrEmpty(tbKısaKenar.Text)) { rtbSonuc.Text = "Lütfen uzunluk değerlerini eksiksiz giriniz!"; } else { A1.Kısakenar = Double.Parse(tbKısaKenar.Text); A1.Uzunkenar = Double.Parse(tbUzunKenar.Text); rtbSonuc.Text = A1.AlanHesapla().ToString(); } } else if (cbKare.Checked) { Kare K1 = new Kare(); if (String.IsNullOrEmpty(tbUzunKenarK.Text)) { rtbSonuc.Text = "Lütfen uzunluk değerlerini eksiksiz giriniz!"; } else { K1.Uzunkenar = Double.Parse(tbUzunKenarK.Text); rtbSonuc.Text = K1.AlanHesapla().ToString(); } } else if (cbDaire.Checked) { if (String.IsNullOrEmpty(tbYarıcap.Text)) { rtbSonuc.Text = "Lütfen uzunluk değerlerini eksiksiz giriniz!"; } else { Daire D1 = new Daire(); D1.YarıCap = Double.Parse(tbYarıcap.Text); rtbSonuc.Text = D1.AlanHesapla().ToString(); } } else { rtbSonuc.Text = "Lütfen bir şekil seçiniz!"; } }