public void Karistir() //kartları karıştırmak için { Random sayiGen = new Random(); for (int k = 0; k < 18; k++) { int rIndis = sayiGen.Next(0, 18); Kart gecici = kartlar[k]; kartlar[k] = kartlar[rIndis]; kartlar[rIndis] = gecici; } }
}; // her rengin 6 tane kartı var (RD = Renk Degiştir kartı ve rengi yok) public void Olustur() { //string[] renkler = new string[3] { "Sarı", "Kirmizi", "Mavi" }; //string[] sayilar = new string[6] { "1", "2", "3", "4", "5", "RD" }; int k = 0; for (int i = 0; i < 3; i++) { for (int j = 0; j < 6; j++)// her rengin kartları belirtme { kartlar[k] = new Kart(); kartlar[k].rengi = renkler[i]; kartlar[k].sayisi = sayilar[j]; // kartlar[k].puani=puanlar[j]; k++; } } }
public void PlayGame() { Console.WriteLine("Seçeceğiniz kartın sol tarafındaki kart numarasını klavyeden gir "); Console.WriteLine("******************** "); Kart yerdeKart = new Kart();//Yerde kart nesnesi int i = 0; bool biter = false;// oyun bittiğinde true olacak while (biter == false) { while (i < 3)// 3 hamlemiz var { renk = false; rd = true; if (pas == 3)// 3 hamle boyunca yerde kart değiştirilmemiş ise oyunu biter { Console.WriteLine("********************************"); Console.WriteLine("Oyun Bire birebir Bitti"); biter = true; break; } if (i == 0) { Console.WriteLine("{0} Seçeceğiniz kartın sol tarafındaki kart numarasını klavyeden gir , pas için 7 girin /ilk atamada haric/", oyuncularimiz.names[i]); string sirastr = Console.ReadLine();// kullanıcıdan atılacak kartın sırasını alır int sira = Convert.ToInt32(sirastr); if (ilkatama == true)//eğer daha yerde kart yok (RD ile başlamamak için ) { if (sira > 0 && sira < oyuncularimiz.kartlarim[i].Count + 1 && oyuncularimiz.kartlarim[i][sira - 1].sayisi != "RD") { ilkatama = false; yerdeKart = oyuncularimiz.kartlarim[i][sira - 1]; //yeni oyuncu kart attığında yerdekartın değeri değiştirilir oyuncularimiz.kartlarim[i].RemoveAt(sira - 1); //kullanıcı attığı kart kullanıcının listesinden silinir Console.WriteLine("Yerde Kart"); yerdeKart.bilgiYaz(); // Console.WriteLine("***********************"); if (pas > 0) // yerde kart 2 ya da 1 hamle boyunca değiştirlmediyse ve bu hamlede değiştirildiyse pas 0 olur { pas = 0; } i++; } else { Console.WriteLine("Hataa !! Tekrar seçiniz"); } } else//eğer bu atama ilk atama değil yani yerde kart var { if (sira >= 0 && sira < oyuncularimiz.kartlarim[i].Count + 1) { if (oyuncularimiz.kartlarim[i][sira - 1].sayisi != "RD") // atılan kart RD değilse { if (yerdeKart.rengi == oyuncularimiz.kartlarim[i][sira - 1].rengi || yerdeKart.sayisi == oyuncularimiz.kartlarim[i][sira - 1].sayisi) //kart şartları sağlıyorsa { yerdeKart = oyuncularimiz.kartlarim[i][sira - 1]; oyuncularimiz.kartlarim[i].RemoveAt(sira - 1); Console.WriteLine("Yerde Kart"); yerdeKart.bilgiYaz(); Console.WriteLine("***********************"); } else// kart şartları sağlamıyorsa { Console.WriteLine("Hataa !! Tekrar seçiniz"); continue; } } else if (oyuncularimiz.kartlarim[i][sira - 1].sayisi == "RD")// atılan kart RD ise { for (int renk = 0; renk < 3; renk++)// yeni renk secmek için { Console.WriteLine(" Eger {0} kart isterseniz : {1}e basiniz ! ", destem.renkler[renk], renk + 1); } string yenirenk = Console.ReadLine(); int renkinedeksi = Convert.ToInt32(yenirenk) - 1; if (renkinedeksi <= 2) { oyuncularimiz.kartlarim[i].RemoveAt(sira - 1); Console.WriteLine("Rengi degistir kartini sectiniz !"); yerdeKart.rengi = destem.renkler[renkinedeksi]; Console.WriteLine("Yerde Kart"); yerdeKart.bilgiYaz(); Console.WriteLine("***********************"); if (pas > 0) { pas = 0; } } else { Console.WriteLine("Oyle bir renk yok Tekrar kart seçin"); continue; } } if (oyuncularimiz.kartlarim[i].Count == 0)//oyuncunun hiç kartı kalmadıysa { Console.WriteLine("{0} kazandi Tebrikleeeer !!!", oyuncularimiz.names[i]); biter = true;// whileden çıkacak ve oyun biter break; } i++; } else if (sira == 7) { Console.WriteLine("Pas edildi !"); Console.WriteLine("Yerde Kart"); yerdeKart.bilgiYaz(); Console.WriteLine("***********************"); i++; pas++; } else { Console.WriteLine("Hataa !! Tekrar seçiniz"); } } } else//Bilgisayarın oyuncularının sırası { for (int kart = 0; kart < oyuncularimiz.kartlarim[i].Count; kart++) { if (oyuncularimiz.kartlarim[i][kart].sayisi != "RD") { if (oyuncularimiz.kartlarim[i][kart].sayisi == yerdeKart.sayisi || oyuncularimiz.kartlarim[i][kart].rengi == yerdeKart.rengi) { yerdeKart = oyuncularimiz.kartlarim[i][kart]; oyuncularimiz.kartlarim[i].RemoveAt(kart); Console.WriteLine("Bilgisayar {0} . oyuncusunun sırası :", i); Console.WriteLine("Yerde Kart"); yerdeKart.bilgiYaz(); Console.WriteLine("**********Enter Bas*************"); Console.ReadLine(); rd = false; pasyap = false; break; } } } if (rd == true) { Random sayiGen = new Random(); for (int kart = 0; kart < oyuncularimiz.kartlarim[i].Count; kart++) { if (oyuncularimiz.kartlarim[i][kart].sayisi == "RD") { while (renk == false) { int yenirenkindeksi = sayiGen.Next(0, 2); if (destem.renkler[yenirenkindeksi] != yerdeKart.rengi) { oyuncularimiz.kartlarim[i].RemoveAt(kart); Console.WriteLine("Rengi degistir kartini sectiniz !"); yerdeKart.rengi = destem.renkler[yenirenkindeksi]; Console.WriteLine("Bilgisayar {0} . oyuncusunun sırası :", i); Console.WriteLine("renk degistirildi!!"); Console.WriteLine("Yerde Kart"); yerdeKart.bilgiYaz(); Console.WriteLine("**********Enter Bas*************"); Console.ReadLine(); if (pas > 0) { pas = 0; } renk = true; } } pasyap = false; } } } if (oyuncularimiz.kartlarim[i].Count == 0)//oyuncunun hiç kartı kalmadıysa { Console.WriteLine("{0} kazandi Tebrikleeeer !!!", oyuncularimiz.names[i]); biter = true;// whileden çıkacak ve oyun biter break; } if (pasyap == true) { Console.WriteLine("Bilgisayar {0} . oyuncusunun sırası :", i); Console.WriteLine("Pas edildi !"); Console.WriteLine("Yerde Kart"); yerdeKart.bilgiYaz(); Console.WriteLine("**********Enter Bas*************"); Console.ReadLine(); pas++; } i++; } if (i > 2)// yeni hamle başlamak için { for (int k = 0; k < 3; k++) { Console.WriteLine("{0}'in kartlar :", oyuncularimiz.names[k]); for (int j = 0; j < oyuncularimiz.kartlarim[k].Count; j++) { Console.Write("{0}.Kart : ", j + 1); oyuncularimiz.kartlarim[k][j].bilgiYaz(); } Console.WriteLine("**********************"); } Console.WriteLine("Yerde Kart"); yerdeKart.bilgiYaz(); Console.WriteLine("***********************"); i = 0; } } } }