Taş-Kağıt-Makas oyunu, iki veya daha fazla oyuncu arasında oynanan basit bir el işareti oyunudur. Oyunun amacı, diğer oyunculara karşı kazanmaktır. Her oyuncu, el işareti yaparak bir seçim yapar.
Taş, kağıt ve makas olmak üzere üç seçenek vardır. Taş, makası yener; makas kağıdı yener; kağıt ise taşı yener.
Oyuncuların seçimleri, kazanma veya kaybetme durumlarına göre puan olarak sayılır.
Oyun, genellikle çocuklar arasında oynanan eğlenceli bir oyun olmakla birlikte, yetişkinler arasında da popülerdir ve hatta bazı ülkelerde profesyonel bir spor dalı olarak bile kabul edilir.
Örneğimizde Android Java ile Taş Kağıt Makas oyununu oluşturacağız.
Adım 1: İlk olarak Kullanacağınız Taş, Kağıt ve Makas resim dosyalarını drawable klasörüne kopyala yapıştır veya sürükle bırak yöntemiyle taşıyın.

Adım 2: Tasarımı aşağıdaki gibi oluşturun.

activity_main.xml dosyası içeriği:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="5dp" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/iv_oyuncu" android:layout_width="wrap_content" android:layout_height="250dp" android:layout_weight="1" app:srcCompat="@drawable/tas" /> <ImageView android:id="@+id/iv_bilgisayar" android:layout_width="wrap_content" android:layout_height="250dp" android:layout_weight="1" app:srcCompat="@drawable/tas" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="30dp" android:orientation="horizontal"> <TextView android:id="@+id/tv_oyuncu_puan" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="20sp" android:text="Oyuncu:" /> <TextView android:id="@+id/tv_bilgisayar_puan" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="20sp" android:text="Bilgisayar:" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:orientation="horizontal"> <Button android:id="@+id/btn_tas" android:layout_width="wrap_content" android:layout_height="100dp" android:layout_weight="1" android:textSize="18sp" android:text="TAŞ" /> <Button android:id="@+id/btn_kagit" android:layout_width="wrap_content" android:layout_height="100dp" android:layout_weight="1" android:textSize="18sp" android:text="KAĞIT" /> <Button android:id="@+id/btn_makas" android:layout_width="wrap_content" android:layout_height="100dp" android:layout_weight="1" android:textSize="18sp" android:text="MAKAS" /> </LinearLayout> </LinearLayout> |
Adım 3: java kodlarını aşağıdaki gibi oluşturun.
ActivityMain.java dosyası
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | package com.example.taskagitmakas; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { ImageView imageViewOyuncu,imageViewBilgisayar; TextView textViewOyuncu,textViewBilgisayar; Button btnTas,btnKagit,btnMakas; int[] resimler={R.drawable.tas,R.drawable.kagit,R.drawable.makas}; int oyuncuPuan,bilgisayarPuan; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageViewOyuncu=findViewById(R.id.iv_oyuncu); imageViewBilgisayar=findViewById(R.id.iv_bilgisayar); textViewOyuncu=findViewById(R.id.tv_oyuncu_puan); textViewBilgisayar=findViewById(R.id.tv_bilgisayar_puan); btnTas=findViewById(R.id.btn_tas); btnKagit=findViewById(R.id.btn_kagit); btnMakas=findViewById(R.id.btn_makas); oyuncuPuan=0; bilgisayarPuan=0; btnTas.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { oyna(0); } }); btnKagit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { oyna(1); } }); btnMakas.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { oyna(2); } }); } private void oyna(int oyuncuSecim) { int bilgisayarSecim=(int)(Math.random()*3); imageViewOyuncu.setImageResource(resimler[oyuncuSecim]); imageViewBilgisayar.setImageResource(resimler[bilgisayarSecim]); if(oyuncuSecim==bilgisayarSecim){ Toast.makeText(this, "Berabere", Toast.LENGTH_SHORT).show(); }else if(oyuncuSecim==0 && bilgisayarSecim==2 || oyuncuSecim==1 && bilgisayarSecim==0 || oyuncuSecim==2 && bilgisayarSecim==1 ){ oyuncuPuan++; Toast.makeText(this, "Kazandınız.", Toast.LENGTH_SHORT).show(); } else{ bilgisayarPuan++; Toast.makeText(this, "Kaybettiniz.", Toast.LENGTH_SHORT).show(); } textViewOyuncu.setText("Oyuncu: "+oyuncuPuan); textViewBilgisayar.setText("Bilgisayar: "+bilgisayarPuan); } } |
Bu kod, Android Studio kullanılarak Taş-Kağıt-Makas oyunu için yazılmış bir Java sınıfıdır. Bu sınıf, oyunun temel işlevlerini içerir ve oyunu oynamak için kullanıcı arayüz elemanları ve Java kodu arasındaki bağlantıyı sağlar.
Kod içerisinde, kullanıcı arayüz elemanları (ImageView, TextView, Button) tanımlanır ve bunların etkinlikleri (onClick) belirlenir. Örneğin, kullanıcının “Taş” butonuna tıkladığında, “btnTas” değişkeni tetiklenir ve “oyna” metodu çağrılır. Bu metod, kullanıcının seçimine göre rastgele bilgisayar seçimini yapar ve sonucu gösterir. Bu işlem diğer butonlar için de geçerlidir.
Metodun içinde, öncelikle kullanıcının seçimini “oyuncuSecim” değişkeninde tutulur ve rastgele seçilen bilgisayar seçimi “bilgisayarSecim” değişkeninde tutulur. Daha sonra, “imageViewOyuncu” ve “imageViewBilgisayar” görüntüleri “resimler” dizisindeki uygun resimlerle değiştirilir. Eğer kullanıcı ve bilgisayar aynı seçimi yaparsa, ekranda “Berabere” mesajı gösterilir. Kazanılan veya kaybedilen durumlarda ise, “oyuncuPuan” veya “bilgisayarPuan” değişkenleri arttırılır ve kullanıcıya kazandığı veya kaybettiği mesajı gösterilir.
Kod içerisinde kullanılan “textViewOyuncu” ve “textViewBilgisayar” değişkenleri, kazanılan puanların ekranda gösterilmesini sağlar. Her seferinde bir butona basıldığında, “oyna” metodunun tekrar çağrılması sayesinde kullanıcı ve bilgisayarın yeni bir seçim yapması sağlanır. Böylece, oyunun tekrar oynanması mümkün hale gelir.
Bu kod, basit bir Taş-Kağıt-Makas oyunu için temel bir yapı sağlar ve oyunu oynamak isteyenler için iyi bir başlangıç noktasıdır. Oyunun daha gelişmiş versiyonlarında, farklı seviyeler, puanlama sistemleri, animasyonlar ve diğer özellikler eklenebilir.
Uygulamanın yapılış videosu: