Pişti Oyunu Konsol (JAVA) – Mobile Application Developer

Pişti Oyunu Konsol (JAVA)

Pişti Oyunu Tanımı ve Şartları

Projenin Kodları

Tüm projeyi İNDİR: Program Raporu ve Kodu

Bir deste 52 karttan oluşmaktadır.

  1. 4 çeşit (çeşit) kart bulunmaktadır: Kupa (♥), Karo (♦), Maça (♠) ve Sinek (♣).
  2. 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.
  3. 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:

  1. 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.
  2. 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.
  3. 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:
  1. 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.
  2. Bilgisayar ve oyuncu sırasıyla oyuna katılır ve ellerindeki bir kartı oynarlar. Oyuncu oynayacağı kartı ilgili tuşu kullanarak seçer.
  3. Bilgisayar oynayacağı kartı şu şekilde seçer:

                    i. 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
  1. 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
  1. Oyuncunun elindeki kart sayısına bakar tek kart kalmışsa otomatik oynar.
  2. 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.
  3. 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
  1. 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.
  2. 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

Bulent SIYAH | 08 Ocak 2012