Bu yazıda taş kağıt makas oyununu javada nasıl kodlandığını göreceksiniz. Öncelikle istediğimiz kod için şartları belirtelim

  • Oyuncu, taş (0), kağıt (1) veya makas (2) seçeneklerinden birini seçebilecek.
  • Bilgisayar da aynı şekilde taş, kağıt veya makas seçecek, fakat bu seçim rastgele olacak.
  • Seçimler yapıldıktan sonra, kazanma, kaybetme ya da berabere durumu belirlenecek ve ekrana yazdırılacak.

İSTENEN

İstenen şartlara bağlı olarak taş kağıt makas oyununun java kodu nedir?

ŞARTLAR:

  • Taş=0,Kağıt=1,Makas=2
  • Bilgisayar taş kağıt makası üçlüsünden rastgele bir tanesini dizi içerisinden rastgele seçmeli
  • Oyunun sonucu ekrana yazdırılacak

ÇÖZÜM

import java.util.Scanner;

public class TasKagitMakas {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Oyuncudan seçim alalım
        System.out.println("Taş (0), Kağıt (1), Makas (2) seçin:");
        int oyuncuSecimi = scanner.nextInt();
        
        // Bilgisayarın rastgele seçimi
        int bilgisayarSecimi = (int) (Math.random() * 3);
        
        // Seçimleri yazdıralım
        String[] secimler = {"Taş", "Kağıt", "Makas"};
        System.out.println("Sen: " + secimler[oyuncuSecimi]);
        System.out.println("Bilgisayar: " + secimler[bilgisayarSecimi]);
        
        // Sonucu değerlendirelim
        if (oyuncuSecimi == bilgisayarSecimi) {
            System.out.println("Beraberlik!");
        } else if ((oyuncuSecimi == 0 && bilgisayarSecimi == 2) || 
                   (oyuncuSecimi == 1 && bilgisayarSecimi == 0) || 
                   (oyuncuSecimi == 2 && bilgisayarSecimi == 1)) {
            System.out.println("Kazandın!");
        } else {
            System.out.println("Kaybettin!");
        }
    }
}

KODUN AÇIKLAMASI:

import java.util.Scanner;

public class TasKagitMakas {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
  • import java.util.Scanner;:
  • Bu satır, Scanner sınıfını programımıza dahil etmek için kullanılır. Scanner sınıfı, kullanıcıdan giriş almak amacıyla kullanılan bir Java sınıfıdır. Bu satır sayesinde kullanıcıdan alınan verileri işleyebilmek için Scanner nesnesi oluşturabiliriz.
  • public class TasKagitMakas {:
  • Bu satır, taş-kağıt-makas oyununun temel sınıfını tanımlar. TasKagitMakas, bizim oyunun oynandığı sınıfın adı olacak. Java’da her program bir sınıf içinde yer alır, bu yüzden burada bir sınıf tanımlıyoruz.
  • public static void main(String[] args) {:
  • Java programlarında çalışmaya başlamak için gereken metottur. Her Java uygulaması, main metoduyla başlar. Bu metot, programın çalışmaya başladığı ilk yer olduğundan, oyunun mantığını ve kodun geri kalanını burada çalıştıracağız.
  • Scanner scanner = new Scanner(System.in);:
  • Burada, Scanner sınıfından bir nesne oluşturuyoruz ve bu nesne sayesinde kullanıcıdan giriş alabileceğiz. System.in, klavye üzerinden alınacak veriyi temsil eder. Yani, bu satır sayesinde oyuncudan veri almak için bir scanner nesnesi yaratıyoruz.
        System.out.println("Taş (0), Kağıt (1), Makas (2) seçin:");
  • Bu satır, kullanıcıya hangi seçeneklerden birini seçmesi gerektiğini belirten bir mesajı ekrana yazdırır. Kullanıcıdan 0, 1 veya 2 seçmesini bekliyoruz. Bu seçenekler, sırasıyla Taş, Kağıt ve Makas’ı temsil ediyor.
        int oyuncuSecimi = scanner.nextInt();
  • Burada, kullanıcıdan bir tam sayı girmesini istiyoruz. scanner.nextInt() komutu, kullanıcının girdiği sayıyı okur ve bu değeri oyuncuSecimi değişkenine atar. Bu değer, kullanıcının yaptığı seçimi (0, 1 veya 2) temsil eder.
        int bilgisayarSecimi = (int) (Math.random() * 3);
  • Burada, bilgisayarın seçiminden sorumlu bir rastgele sayı üretme işlemi yapıyoruz. Math.random() fonksiyonu 0 ile 1 arasında bir ondalıklı sayı üretir. Bunu 3 ile çarparız ve int tipine dönüştürerek 0, 1 veya 2 gibi bir tam sayı elde ederiz. Bu sayı, bilgisayarın seçimini belirler.
        String[] secimler = {"Taş", "Kağıt", "Makas"};
  • Bu satırda, oyuncu ve bilgisayar için yapılabilecek seçenekleri tanımlıyoruz. secimler adındaki dizi üç elemandan oluşur: “Taş”, “Kağıt”, ve “Makas”. Bu diziyi, oyuncunun ve bilgisayarın seçimini yazdırırken kullanacağız.
        System.out.println("Sen: " + secimler[oyuncuSecimi]);
  • Bu satır, oyuncunun yaptığı seçimi ekrana yazdırır. secimler[oyuncuSecimi], oyuncunun seçimindeki sayısal değere göre diziden doğru metni alır. Örneğin, kullanıcı 0 seçerse “Taş”, 1 seçerse “Kağıt”, 2 seçerse “Makas” yazdırılır.
        System.out.println("Bilgisayar: " + secimler[bilgisayarSecimi]);
  • Bu satır, bilgisayarın yaptığı seçimi ekrana yazdırır. secimler[bilgisayarSecimi] ifadesi ile diziden, bilgisayarın seçtiği indekse karşılık gelen değeri alır ve yazdırır. Örneğin, bilgisayar 2 seçerse “Makas” yazdırılır.
        if (oyuncuSecimi == bilgisayarSecimi) {
  • Bu if bloğu, oyuncunun ve bilgisayarın aynı seçimi yapıp yapmadığını kontrol eder. Eğer ikisi de aynı seçimi yaparsa (örneğin, her ikisi de “Taş” seçerse), if bloğundaki kod çalışır. Yani, bu durum beraberlik durumudur.
            System.out.println("Beraberlik!");
  • Eğer oyuncu ve bilgisayar aynı seçimi yaptıysa (örneğin, her ikisi de “Taş” seçerse), bu satır çalışır ve “Beraberlik!” mesajı ekrana yazdırılır.
        } else if ((oyuncuSecimi == 0 && bilgisayarSecimi == 2) || 
                   (oyuncuSecimi == 1 && bilgisayarSecimi == 0) || 
                   (oyuncuSecimi == 2 && bilgisayarSecimi == 1)) {

Bu else if bloğu, oyuncunun kazandığı durumları kontrol eder.

  • Eğer oyuncu taş (0) seçtiyse ve bilgisayar makas (2) seçtiyse, oyuncu kazanır.
  • Eğer oyuncu kağıt (1) seçtiyse ve bilgisayar taş (0) seçtiyse, oyuncu kazanır.
  • Eğer oyuncu makas (2) seçtiyse ve bilgisayar kağıt (1) seçtiyse, oyuncu kazanır.
  • Bu üç durumu OR (||) operatörü ile birleştiriyoruz, yani herhangi biri doğruysa oyuncu kazanır.
            System.out.println("Kazandın!");
        } else {
            System.out.println("Kaybettin!");
  • Son olarak sonuç ne ise onu ekrana yazdırmak için üstteki kodları ekliyoruz ve kodumuz tamamlanıyor.

No responses yet

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir