Card Games Consol (Matlab) | Programming Tutorial

in cardgames •  7 years ago 

Proje adımları javada yazılan bir oyunun matlaba dönüştürülmesi şekildedir.

Bir deste 52 karttan oluşmaktadır.

4 çeşit (çeşit) kart bulunmaktadır: Kupa (♥), Karo (♦), Maça (♠) ve Sinek (♣).
Her çeşitten 13 kart bulunmaktadır (1 veya A, 2, 3 …, 10, J, Q, K). Bu değerler kartın numarası olarak adlandırılır.
J (Joker), Q (Kraliçe) ve K (Kral) için sırasıyla 11, 12 ve 13 kullanabilirsiniz.

Oyuncu ve bilgisayar ellerinde 4 kart bulundurur. Oyun, oyuncu ve bilgisayarın sırasıyla yere bir kart bırakmaları şeklindedir. Yere kart bırakma işlemi oynama olarak adlandırılır. Kart K oyuncu O tarafından oynandığında aşağıdaki 3 durumdan biri ortaya çıkar:

Yerde sadece 1 kart bulunmaktadır. Bu kartı T olarak adlandıralım. Eğer C ile T aynı sayıya eşitse, oyuncu P pişti yapmış olur ve 10 puan kazanır. Oyuncu P yeri temizleyerek C ve T kartlarını kasasına koyar. Bu noktada yer boş durumdadır.
Yerde birden fazla kart vardır. Yerde en üstte bulanan kartı T olarak adlandıralım. Eğer C ile T aynı sayıya eşitse oyuncu P yeri temizleyerek yerdeki tüm kartları kasasına koyar.
Yerdeki kart sayısı ne olursa olsun, eğer C kartı Joker kartına veya yerde bulunan kartların en üstündekine eşit değilse, C kartı yerde kalır ve en üstteki kart olur. Kimse yeri temizlemez.

Oyun sonunda pişti puanlarına ek olarak; her oyuncu, kasasındaki pişti olmayan her kart için 1 puan kazanır. En çok puanı toplayan oyuncu kazanır.

Her pişti oyunu aşağıdaki şekilde devam eder:

Oyun başında bilgisayar desteyi karıştırır. Bu işlem destedeki 52 kartın rastgele sıralanmasıyla elde edilir.
Daha sonra, bilgisayar ilk 4 kartı yere bırakır ve en üstteki kartı gösterir.
Oyun 6 tur devam eder. Her tur aşağıdaki gibi oynanır:
Bilgisayar en üstteki 4 kartı kendisine alır, sonrasındaki 4 kartı da oyuncuya verir. Oyuncunun 4 kartı ekranda gösterilir ve her kart bir tuşla ilişkilendirilir.
Bilgisayar ve oyuncu sırasıyla oyuna katılır ve ellerindeki bir kartı oynarlar. Oyuncu oynayacağı kartı ilgili tuşu kullanarak seçer.
Bilgisayar oynayacağı kartı şu şekilde seçer:

Eğer elinde yerde en üstteki kart ile aynı numarada bir kart varsa onu oynar.

ii. Aksi halde, elinde Joker varsa ve yer boş değilse, bu kartını oynar.

iii. Üstteki durumlar geçerli değilse, herhangi bir kartı seçer ve oynar.

iv. Yerin boş olması durumunda, başka seçeneği yoksa Joker kartını oynar.

İki oyuncunun da kartları bitince, yeni bir tur (eğer varsa) başlar. Yer, tur bitiminde temizlenmez.

Pişti Oyun Projesi için Oluşturulan Sınıflar ve Metodların Açıklamaları
MainPisti Sınıfı
Pisti sınıfını yaratılır. 6 defa turlayıp her turda ; Eğer ilk tur ise yere, bilgisayara ve oyuncuya kart dağıtır. ilk değilse yere kart vermeden bilgisayar ve oyuncuya kart verir. 4 el oynanacağı için her el boyunca sırasıyla oyuncu ve bilgisayara kart attırır ve her atılan kartın ardından yerdeki kart durumu ekrana verilir. oyun bittikten sonra puanı fazla olanı kazanan ilan eder.

Pisti Sınıfı
DesteyiOlusturVeKaristir() metodu;

52 tane kartı oluşturup bir string dizisine atıyor.
Oluşturulan 52 elemanlı string arrayı önce random karıştırılıyor ve arrayliste atılıyor.
Kartların içerisindeki joker olan 4 eleman bir string dizisinde kopyalanıyor.
SiraylaElVer (int KartlarinDagitilacagiKisi) metodu;

Bu metotta şartlı durum bulunuyor, metod çağırılırken gönderilen değere göre Yere,Oyuncuya veya Bilgisayara Kart dağılacağına karar verir.
Belirlenen Kişiye en üstteki sıra ile kart verilirken verilen kartlar 52 adet olan desteden silinir.
EliGosterveOyna(int EliOynayacakKisi) metodu ;

Eğer metodu çağırırken yer ile ilgili işlem yapılacaksa yerin kodu olan 3 integer değeri yollanır ve eligosterveoyna metodu
Yer boş olup olmadığı kontrolu yapar ve duruma göre ekrana kart sayısı ve son kart ile ilgili bilgi verir.
Eğer metodu çağırırken oyuncu ile ilgili işlem yapılacaksa oyuncunun kodu olan 2 integer değeri yollanır ve eligosterveoyna metodu
Oyuncunun elindeki kart sayısına bakar tek kart kalmışsa otomatik oynar.
Değilse kartlar sıralar ve hangisini oynamak istediğini sorar ve seçilen değer kontrolu yapar kullanıcı hata girmesi durumunda oyun sonlanır.
Girilen değer dogruysa kartı ve kartı oyuncunun gönderdiğini anlaması için oyuncunun kodu olan 2 integer değeri ile kartattimpuanimabak metoduna yollar.
Eğer metodu çağırırken bilgisayar ile ilgili işlem yapılacaksa bilgisayarın kodu olan 1 integer değeri yollanır ve eligosterveoyna metodu
Bilgisayar yerde kart varsa: Bilgisayarın elindeki kart sayısına bakar tek kart kalmışsa otomatik oynar, değilse kartları göstermeden listeler ve yerdeki kartla aynı olan kart varmı kontrolu yapar varsa o kartı oynar ve kartattimpuanimabak metoduna yollar yoksa joker kontrolu yapar varsa jokeri oynar ve kartattimpuanimabak metoduna yollar. Joker de bulunmuyorsa rastgele bir sayı oynar ve kartattimpuanimabak metoduna yollar.
Bilgisayar yerde kart yoksa: Bilgisayarın elindeki kart sayısına bakar tek kart kalmışsa otomatik oynar, değilse kartları göstermeden listeler ve joker olmayan bir kartı oynar eğer bu ihtimalde yoksa rastgele kart oynar ve kartattimpuanimabak metoduna yollar.
KartAttimPuanimaBak(String OynananKart, int EliOynayanKisi) metodu;

Bu metod Bilgisayar veya Oyuncu tarafından çağırılır metodunu çağıran kimse onun hanesine puan yazılır.

Yer boş ise atılan kartı Bilgisayar veya Oyuncu fark etmez direkt Yere ekler.
Değilse atılan kart ile yerdeki kartı kıyaslar aynı ise yerdeki kart sayına bakar eger sayı bır ıse yanı yerde baska kart yoksa pişti olur KartAttimPuanimaBak metodunu çağıran kimse onun hanesine 10 artı olarak kartların sayısı kadar puan eklenir, bir degılse yerdeki tüm kartları alır ve yerdeki kartsayısı kadar KartAttimPuanimaBak metodunu çağıran kimse onun hanesine puan eklenir.
Yerdeki kart aynı değilse atılan kartın joker olup olmadığına bakar eğer joker ise yerdeki tüm kartları alır ve yerdeki kartsayısı kadar KartAttimPuanimaBak metodunu çağıran kimse onun hanesine puan eklenir.
Jokerde değilse atılan kartı Yerdeki kartlara ekler ve en üsste atılan kart olur.

Pişti Oyunu Projesinin Kodları
Gist Kodları: https://gist.github.com/bulentsiyah/45c4b2f0e712d09ee8ac9b1fd71284db

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
http://www.bulentsiyah.com/pisti-oyunu-konsol-java/

This is my own website. Readers might be interested in my other contents