JAVA ile Taş - Makas - Kağıt Oyunu

Yeni bir proje açalım.

Kullanıcıdan seçim yapmasını isteyeceğim bunun için Scanner, bilgisayara karşı oynayacağız bu durumda bilgisayarın da seçim yapması seçenek üretmesi içni Random kullanacağız doğal olarak öncesinde Scanner ve Random kütüphanelerini sisteme tanımlamalıyız.

import java.util.Scanner; 
import java.util.Random;


   Scanner scan = new Scanner(System.in);

    System.out.println("Oyuncunun Adını Giriniz: ");
    String Oyuncu = scan.next();
    
    String OyuncununSecimi; 
    String BilgisayarinSecimi = ""; 
    int Uretilen;
    int skorOyuncu = 0; int skorPC = 0;


Yukarıdaki kod bloğunda değişkenleri tanımladık bir oyuncu bir de bilgisayar için bir değişken tanımladık. skorOyuncu ve skorPC ise isimlerinden de anlaşıldığı gibi rakiplerin skorlarını tutacaklar.

      System.out.println("Kaç el oynamak ister siniz? :");
      int el = scan.nextInt();
      


Yukarıda ise kullanıcıya kaç el oynamak istediğini sorduk.

Şimdi ise mantık olarak oynanacak el sayısı kadar döngü dönecek, her elde bilgisayar yeni bir seçim yapacak Random sınıfını bu yüzden döngü içine tanımladık. toUpperCase kullanmamın sebebi olası bir hatayı engellemek için kullanıcı taş seçmek için 't' girse bile sistem bunu 'T' olarak büyük harf haline çevircek.

for (int i = 0; i < el; i++) 
{
    System.out.println("Lütfen seçim Yapınız.. Taş için 'T', Kağıt için 'K', Makas için 'M'");

     Random uret = new Random(); 
     Uretilen = uret.nextInt(3)+1; 

    if (Uretilen == 1) BilgisayarinSecimi = "T"; 
    else if (Uretilen == 2) BilgisayarinSecimi = "K"; 
    else if (Uretilen == 3) BilgisayarinSecimi= "M"; 
    
    System.out.println("Seçiminizi Yapınız: "); 
    OyuncununSecimi = scan.next();
    
    OyuncununSecimi = OyuncununSecimi.toUpperCase(); 
    
    System.out.println("Bilgisayarın Seçimi: " + BilgisayarinSecimi);
    
    if(OyuncununSecimi.equals(BilgisayarinSecimi))
    {
	System.out.println("Berabere.."); 
    }

   else if (OyuncununSecimi.equals("T"))
   {
        if (BilgisayarinSecimi.equals("M")) 
        {
            System.out.println("Kazandınız..");
            skorOyuncu++;
        }
	else if (BilgisayarinSecimi.equals("K"))
	{
	    System.out.println("Kaybettiniz.."); 
            skorPC++;
 	}        
   }

else if (OyuncununSecimi.equals("K"))
{
	if (BilgisayarinSecimi.equals("M"))
	{
	     System.out.println("Kaybettiniz.."); 
              skorPC++;
	} 
       
        else if (BilgisayarinSecimi.equals("T")) 
	{
             System.out.println("Kazandınız.."); 
              skorOyuncu++;
	}
           
}

else if (OyuncununSecimi.equals("M")) 
{
	 if (BilgisayarinSecimi.equals("K"))
	 {
	     System.out.println("Kazandınız.."); 
              skorOyuncu++;
         } 
         
         else if (BilgisayarinSecimi.equals("T")) 
         {
             System.out.println("Kaybettiniz..");  
             skorPC++;
         }
            
         else 
	{
	     System.out.println("Lütfen tekrar deneyiniz.."); 
	}
         
}
        }


Oyunun kurallarını çoğu kişi biliyodur; Taş > Kağıt > Makas > Taş > Kağıt... şeklinde bir kısır döngü vardır, seçilen nesneye göre rakipler birbirlerine üstünlük sağlarlar bu kuralı if döngüsü kullanarak koda dökmeye çalıştık. If içinde If'ler olmak zorunda çünkü hem bilgisayar hem oyuncu 3 farklı seçim yapabilir.

Her el sonunda kazanan kimse skorPC++ veya skorOyuncu++ ile kazanan kişinin puanını arttırdık.

Şimdi ise oyun bitti ve kazananı açıklayacağız;

System.out.println("-----OYUN SONA ERDİ---- \n\n Sizin Skorunuz: " + skorOyuncu + "\nBilgisayarın Skoru: "+ skorPC +"\nKAZANAN: ");
        if (skorPC > skorOyuncu) 
        {
           System.out.println("Bilgisayar !");   
        }
        else if (skorPC < skorOyuncu) 
        {
            System.out.println(Oyuncu + " oldu !.");
        }
        else
        {
            System.out.println("ÇIKMADI.. OYUN BERABERE BİTTİ !");
        }


Programın ekran çıktısına bir göz atalım;

http://resim.sanalkurs.net/uploads/1111_3.jpg

Hiç yorum yok:

Yorum Gönder