internal void AynisiVarsaCiftOlarakAtVeyaElindeTut(Kart cekilenKart) { bool bulundu = false; int bulunanKey = -1; foreach (int key in this.Kartlar.Keys) { Kart destedekiKart = this.Kartlar[key]; //Ayni kart var //at if (destedekiKart.KartNo == cekilenKart.KartNo) { bulunanKey = key; bulundu = true; continue; } } //eger cfit bulunmadiysa desteye ekle if (bulundu) { Debug.WriteLine("Oyuncu " + OyuncuNo + " cektigi " + cekilenKart.KartNo + "-" + cekilenKart.KartTipi + " kartini " + Kartlar[bulunanKey].KartNo + "-" + Kartlar[bulunanKey].KartTipi + " ile atti "); KartAt(cekilenKart, acikPanel); KartAt(Kartlar[bulunanKey], acikPanel); Application.DoEvents(); this.Kartlar.Remove(bulunanKey); } else { this.Kartlar.Add(this.Kartlar.Keys.Max() + 1, cekilenKart); Debug.WriteLine("Oyuncu " + OyuncuNo + " cektigi karti " + cekilenKart.KartNo + "-" + cekilenKart.KartTipi + " elinde tuttu "); } }
void BilgisayarOyna() { Debug.WriteLine("Bilgisayar oynuyor " + OyuncuNo); Kart cekilenKart = OncekiOyuncudanKartCek(KatildigiOyun.Oyuncular[OyuncuNoBul.Onceki(OyuncuNo)]); AynisiVarsaCiftOlarakAtVeyaElindeTut(cekilenKart); Debug.WriteLine("Oyuncu " + OyuncuNo + " kalan kart sayisi = " + Kartlar.Count); }
internal void InsanOyna(Kart kart) { Debug.WriteLine("Insan oynuyor " + OyuncuNo); Kart cekilenKart = kart; AynisiVarsaCiftOlarakAtVeyaElindeTut(cekilenKart); Debug.WriteLine("Oyuncu " + OyuncuNo + " kalan kart sayisi = " + Kartlar.Count); KatildigiOyun.SonrakiOyuncuOyna(); }
/// <summary> /// /// </summary> /// <param name="key">Dictionary de key gerekli </param> /// <param name="kartTipi"></param> static void KartTipiOlustur(int key, KartTipi kartTipi) { int startKey = key; for (int i = 1; i <= 12; i++) { Kart kart = new Kart(kartTipi, i); Deste.Add(key, kart); key++; } }
internal void KartAt(Kart kart, Panel panel) { Kart k = kart; KartControl kartControl = new KartControl(); kartControl.Kart = k; kartControl.Left = panel.Controls.Count * (kartControl.Width - 10); kartControl.Show(); panel.Controls.Add(kartControl); kartControl.BringToFront(); }
Kart OncekiOyuncudanKartCek(Oyuncu oncekiOyuncu) { if (oncekiOyuncu.Kartlar.Count > 0) { int rastgeleKart = R.Next(1, oncekiOyuncu.Kartlar.Count); Kart kart = oncekiOyuncu.KartAl(rastgeleKart); return(kart); } else { return(null); } }
internal Kart KartAl(int rastgeleKart) { int i = 1; foreach (int key in Kartlar.Keys) { if (i == rastgeleKart) { Kart verilenKart = Kartlar[key]; Kartlar.Remove(key); return(verilenKart); } i++; } return(null); }
internal void KapaliKartlariDiz(Panel panel) { panel.Controls.Clear(); int aktifLeft = 0; foreach (int key in this.Kartlar.Keys) { Kart k = this.Kartlar[key]; KartControl kartControl = new KartControl(); kartControl.KartKey = key; kartControl.Kart = k; kartControl.Left = aktifLeft; kartControl.OyuncuNo = this.OyuncuNo; kartControl.IcindeBulunduguOyun = this.KatildigiOyun; if (OyuncuNo != 1) { kartControl.Close(); } else { kartControl.Show(); } panel.Controls.Add(kartControl); kartControl.BringToFront(); if (OyuncuNo != 1) { aktifLeft += 20; } else { aktifLeft += kartControl.Width; } } Application.DoEvents(); }