C# Foreach ve If konusunda

Bu konuyu okuyanlar

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
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

Kod:
        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;
                }
            }
        }
 

t(>_<t)

Öğrenci
Katılım
3 Ekim 2009
Mesajlar
44
Reaksiyon puanı
3
Puanları
0
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
 
Üst