İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# Foreach ve If konusunda

UgurOnline10.11.20111 cevap2.222 görüntüleme
2008'den beri159 mesaj
#1
selamlar, basit bir pişti oyunu yapıyorum. rakibin yapacağı hamle kodlarını aşağıda verdim. 'ortadakiler' adlı listbox'ın son elemanına göre eş kartı bulup o kartı attırabiliyorum. ama eş kart olmadığı zaman hamle yapmıyor. else kısmında belirtilen kodlar çalışmıyor. günlerdir deniyorum çözemedim problem acaba nerede.

kodlar şu şekilde, teşekkürler

        private void timer_RakipHamle_Tick(object sender, EventArgs e)
        {
            foreach (PictureBox item in groupBox2.Controls)
            {
                if (listBox1_Ortadakiler.Items.Count != 0)
                {
                    if (KartKarsiliklari[int.Parse(listBox1_Ortadakiler.Items[listBox1_Ortadakiler.Items.Count - 1].ToString())] == KartKarsiliklari[int.Parse(item.Tag.ToString())])
                    {
                        if (item == pictureBox5 && item.Tag != null)
                        {
                            pictureBox5_Click(null, null);
                        }
                        else if (item == pictureBox6 && item.Tag != null)
                        {
                            pictureBox6_Click(null, null);
                        }
                        else if (item == pictureBox7 && item.Tag != null)
                        {
                            pictureBox7_Click(null, null);
                        }
                        else if (item == pictureBox8 && item.Tag != null)
                        {
                            pictureBox8_Click(null, null);
                        }
                    }
                }
                else
                {
                    if (item == pictureBox5 && item.Tag != null)
                    {
                        pictureBox5_Click(null, null);
                    }
                    else if (item == pictureBox6 && item.Tag != null)
                    {
                        pictureBox6_Click(null, null);
                    }
                    else if (item == pictureBox7 && item.Tag != null)
                    {
                        pictureBox7_Click(null, null);
                    }
                    else if (item == pictureBox8 && item.Tag != null)
                    {
                        pictureBox8_Click(null, null);
                    }
                }


                if (OyunSirasi != "Rakip")
                {
                    timer_RakipHamle.Enabled = false;
                    break;
                }
            }
        }
Cevaplar
2009'den beri44 mesaj
#2
Merhaba; kodunuzu tam olarak inceleyemedim, KartKarsiliklari, item.Tag, falan nedir anlamadım çünkü..
Ama kart atma algoritmasını şu şekilde geliştirebilirsiniz (Eğer ai da kağıt sayma olmayacaksa...)

Ortada Kağıt Var Mı? : Evet
--->Elinde En Üstteki Kağıdın Eşi Varmı?
------>Evet : O Kağıdı At
------>Hayır : Elinde Vale Varmı ?
--------->Evet : Valeyi At
--------->Hayır: Elindeki Kağıt Sayısını Bul. 0 - Kağıt # Arası Random Bir Sayı Üret O Kağıdı At.

Ortada Kağıt Var Mı? : Hayır
--->Elinde En Değerli Kağıtlar Var Mı? (Tam Bilmiyorum, Vale, Sinek, Karo 10 Falan...)
------>Evet : Onlar Harici Bir Kağıt At.
------>Hayır : Elindeki Kağıt Sayısını Bul. 0 - Kağıt # Arası Random Bir Sayı Üret O Kağıdı At.

Java Bildiğim İçin Bahsettiğim Şeyi Java Şeklinde Yazayım. İsterseniz Siz Kendi Kullandığınız Dile Çevirirsiniz.
Umarım Faydalı Olur.

http://pastie.org/2843817

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.