micro:bit taş kağıt makas oyunu, kart sallandığında çalışan bir olay bloğuyla karar verir. Program 0 ile 2 arasından rastgele bir sayı seçer ve seçilen değere göre LED ekranda taş, kağıt ya da makas simgesini gösterir. Böylece aynı hareket her yapıldığında sonuç değişebilir.
Oyunda iki kişi sırayla micro:bit kartını sallar. İlk oyuncu çıkan simgeyi, ardından ikinci oyuncu kendi çıkan simgesini kullanır. Sonuçları karşılaştırarak taşın makası, makasın kağıdı, kağıdın da taşı yendiği klasik kurallara göre kazanan belirlenir.
micro:bit taş kağıt makas oyunu nasıl karar verir?
micro:bit, sallandığını algıladığında rastgele sayı üretir ve bu sayıyı üç simgeden birini seçmek için kullanır. Sayı ile simge arasında önceden belirlenmiş bir eşleştirme yapılır.
| Rastgele sayı | LED ekranda gösterilecek sonuç |
|---|---|
| 0 | Taş |
| 1 | Kağıt |
| 2 | Makas |
Buradaki rastgelelik, programın her sallamada 0, 1 veya 2 değerlerinden birini seçmesi anlamına gelir. Koşul blokları ise seçilen sayıyı kontrol eder. Sayı 0 ise taş simgesi, sayı 1 ise kağıt simgesi, sayı 2 ise makas simgesi gösterilir.
Bu karar yapısını bir trafik ışığı gibi düşünebilirsin. Program önce hangi değerin geldiğine bakar, ardından o değere uygun işlemi çalıştırır. MakeCode içindeki eğer ve değilse eğer blokları, farklı sonuçlar için farklı yollar oluşturmana yardımcı olur.
MakeCode’da sallandığında olayını nasıl kurarsın?

MakeCode’da bu oyunun başlangıç noktası, kartın hareketini algılayan sallandığında olay bloğudur. Bu blok çalıştığında içine yerleştirdiğin komutlar sırasıyla uygulanır.
- MakeCode for micro:bit editörünü aç ve ana ekrandan Yeni Proje seçeneğini kullan. Projene kolayca hatırlayabileceğin bir ad ver.
- Editör açıldığında çalışma alanının yanında micro:bit simülatörünü görürsün. Simülatör, yazdığın programın kart üzerinde nasıl davranacağını denemeni sağlar.
- Blok listesinden Giriş kategorisini aç ve sallandığında bloğunu çalışma alanına sürükle. Bu blok, kart sallandığında devreye giren olay alanıdır.
- Değişkenler kategorisinden bir değişken oluştur. Bu değişkene örneğin sonuc adını verebilirsin. Değişkeni bir kez oluşturman yeterlidir.
- Değişkenin yeni değer almasını sağlayan sonuc değerini 0 yap bloğunu sallandığında bloğunun içine yerleştir. Daha sonra 0 yerine rastgele sayı seç bloğunu tak ve alt sınırı 0, üst sınırı 2 olarak ayarla.
Değişkeni çalışma alanında oluşturmak ile ona yeni değer vermek farklı işlemlerdir. Değişken bir kez oluşturulabilir, fakat rastgele sayı seçme komutu sallandığında bloğunun içinde bulunmalıdır. Böylece kart her sallandığında sonuc değişkeni yeni bir değer alır. Rastgele sayı seçme bloğunu olayın dışına bırakırsan değer yalnızca program başlarken belirlenebilir ve sonraki sallamalarda değişmeyebilir.
Simülatörde kart görselinin altındaki sallama kontrolüne tıklayarak olayı çalıştırabilirsin. Her denemede seçilen sayıyı geçici olarak LED ekranında göstermek, değişkenin gerçekten yenilenip yenilenmediğini kontrol etmeyi kolaylaştırır.
Sallandığında olayının farklı bir kullanımını görmek için micro:bit ve blok kodlama rehberlerine göz atabilirsin. Aynı olay yapısı, taş kağıt makas dışında adım sayma gibi hareket algılayan projelerde de kullanılabilir.
0 ile 2 arasındaki sayıları simgelere nasıl eşlersin?

Oyunun karar bölümü, seçim değişkenine 0, 1 veya 2 sayılarından birini atar ve bu sayıyı bir simgeye bağlar. Türkçe MakeCode arayüzünde Değişkenler, Giriş, Matematik, Mantık ve Temel kategorilerindeki blokları kullanabilirsin. Microsoft MakeCode’un taş, kağıt, makas örneğinde de rastgele sayı ile simge eşleştirme yöntemi kullanılır.
| Sayı | Gösterilecek simge | Koşul |
|---|---|---|
| 0 | Taş | seçim = 0 |
| 1 | Kağıt | seçim = 1 |
| 2 | Makas | seçim = 2 |
- Değişkenler kategorisinden yeni bir değişken oluştur ve adını seçim koy.
- Giriş kategorisinden sallandığında olay bloğunu çalışma alanına ekle.
- Bu olayın içine seçim değerini 0 ile 2 arasında rastgele seç bloğunu yerleştir. Rastgele seçim bloğunun alt sınırına 0, üst sınırına 2 yaz. Bu aralıkta iki uç değer de seçilebilir.
- Rastgele seçim bloğunun altına ekranı temizle bloğunu ekle. Böylece önceki sonuçtan kalan LED’ler yeni çizimin üzerine eklenmez.
- Mantık kategorisinden eğer bloğunu ekleyerek ilk koşulu seçim = 0 şeklinde kur. İçine LED’leri göster bloğunu yerleştirerek taş simgesini çiz.
- Eğer bloğundaki artı düğmesine basarak iki adet değilse eğer bölümü oluştur. İlkine seçim = 1 koşulunu ve kağıt çizimini, ikincisine seçim = 2 koşulunu ve makas çizimini ekle.
Temel kategorisindeki simge göster bloğunda küçük kare, kare ve makas seçenekleri görünüyorsa bunları sırasıyla taş, kağıt ve makas için kullanabilirsin. Hazır simgeler yerine LED ızgarasında çizim yapmak istersen 5x5 desenleri aşağıdaki gibi oluşturabilirsin. LED’leri göster bloğundaki yanan noktaları seçerek her resmi kendin çizebilirsin.
let secim = 0
input.onGesture(Gesture.Shake, function () {
basic.clearScreen()
secim = randint(0, 2)
if (secim == 0) {
basic.showLeds(`
. # # # .
# # # # #
# # # # #
# # # # #
. # # # .
`)
} else if (secim == 1) {
basic.showLeds(`
# # # # #
# . . . #
# . . . #
# . . . #
# # # # #
`)
} else if (secim == 2) {
basic.showLeds(`
# # . . #
. # . # .
. . # . .
. # . # .
# # . . #
`)
}
})
Bu kod her sallamada yeni bir sayı üretir ve 0, 1 veya 2 değerine karşılık gelen üç simgeden birini LED ekranında gösterir. Rastgele aralığı 1-3 yapıp koşullarda 0 ararsan 0 hiçbir zaman seçilemez ve taş bölümü çalışmaz. Bu nedenle aralık ile koşullardaki sayılar aynı eşleme sistemini izlemelidir.
Oyunu simülatörde nasıl test edip karta yüklersin?
Önce simülatördeki sallama hareketini çalıştırarak programı denemelisin. MakeCode simülatöründe beyaz sallama kontrolüne basabilir veya imleci sanal kartın üzerinde hızlıca hareket ettirerek sallama olayını tetikleyebilirsin. Her denemede ekranda tek bir simge görünmeli, farklı denemelerde ise taş, kağıt ve makas sonuçlarının üretilebildiğini kontrol etmelisin.
- Kodu kaydet ve simülatörde sallama hareketini birkaç kez çalıştır.
- Simge görünmüyorsa seçim değişkeninin rastgele sayı bloğuyla olayın içinde güncellendiğini kontrol et.
- Program çalıştığında MakeCode ekranındaki İndir düğmesine bas.
- micro:bit’i USB kablosuyla bilgisayara bağla. İndirilen
.hexdosyasını bilgisayardaki MICROBIT sürücüsüne taşı. Eşleştirilmiş bir kartta kod doğrudan karta da aktarılabilir. - Kart bilgisayardan ayrıldığında çalıştırmak için uygun bir pil yuvası kullan. Bir oyuncu kartı sallar, ekrandaki simgeyi görür ve sonucu söyler. Ardından kart diğer oyuncuya verilir ve aynı işlem tekrarlanır.
| Belirti | Olası neden | Düzeltme |
|---|---|---|
| Taş sonucu hiç görünmüyor. | Rastgele aralık 1-3 seçilmiş, koşullardan birinde 0 aranıyor. | Rastgele seçim aralığını 0-2 yap veya koşulları kullandığın aralığa göre yeniden eşleştir. |
| Her sallamada aynı simge kalıyor. | Seçim değişkeni sallandığında olayının içinde güncellenmiyor. | seçim değerini rastgele seç bloğunu sallandığında bloğunun içine, koşullardan önce yerleştir. |
| Yeni çizim eski çizimle karışıyor. | Yeni simge çizilmeden önce ekran temizlenmiyor. | Koşullardan önce ekranı temizle bloğunu çalıştır. |
Oyuna A ve B düğmeleriyle skor nasıl eklenir?
Skor eklemek için bir puan değişkeni oluşturabilir, başlangıçta değerini sıfırlayabilir, A düğmesine her basıldığında bu değeri bir artırabilir ve B düğmesine basıldığında puanı LED ekranda gösterebilirsin. Bu ek kod otomatik olarak kazananı belirlemez; yalnızca basit bir skor sayacı tutar.
Skor değişkenini ve düğme olaylarını oluşturma
Değişkenler kategorisinden puan adlı bir değişken oluştur. Blokları şu sırayla yerleştir:
program başladığında
puan değerini 0 yap
A düğmesine basıldığında
puanı 1 artır
B düğmesine basıldığında
sayı göster puan
Burada üç olay bloğu birbirinden bağımsız çalışır. Taş, kağıt veya makas simgesini seçen sallandığında bloğu da aynı programda ayrı olarak kalabilir. Her sallamada oyun sonucu gösterilir, A düğmesine bastığında puan artar, B düğmesine bastığında güncel puan ekranda görünür. MakeCode’da düğme olayları A veya B düğmesine basıldığında çalışacak şekilde kurulabilir ve sayı gösterme bloğu bir değişkende saklanan değeri ekrana aktarabilir.
Aynı skor ekinin MakeCode JavaScript karşılığı şöyledir:
let puan = 0
input.onButtonPressed(Button.A, function () {
puan += 1
})
input.onButtonPressed(Button.B, function () {
basic.showNumber(puan)
})
İki kişi oynarken oyuncular sırayla kartı sallayabilir. Kart her turda tek bir sonuç gösterir; hangi sonucun hangi oyuncuya ait olduğunu oyuncular sırayla takip eder. Oyuncuların puanlarını ayrı ayrı saklamak istersen oyuncu1Puan ve oyuncu2Puan gibi iki değişken oluşturman gerekir.
Sık Sorulan Sorular
micro:bit taş kağıt makas oyununda neden 0 ile 2 arasında rastgele sayı kullanılır?
Üç farklı sonucu üç sayıya eşlemek için 0, 1 ve 2 değerleri kullanılır. Örneğin 0 taş, 1 kağıt, 2 makas olabilir; koşul blokları da seçilen sayıya göre ilgili LED simgesini gösterir.
MakeCode içindeki pick random bloğu 0 ve 2 değerlerini seçebilir mi?
MakeCode’daki rastgele sayı bloğu, belirlediğin alt ve üst sınırları kapsayacak şekilde çalışır; bu nedenle aralık 0 ve 2 olarak ayarlandığında 0, 1 veya 2 seçilebilir.
Sallandığında olayında değişken neden her seferinde yeniden güncellenmelidir?
Değişken her sallamada yeni bir rastgele değer almazsa koşullar eski sonucu kullanabilir. Rastgele sayı bloğunu sallandığında olayının içine koymak, her turda yeni bir sonuç seçilmesini sağlar.
LED ekranda eski ve yeni simgeler neden birbirine karışır?
Özellikle LED’leri tek tek yakarak şekil çiziyorsan önceki ışıklar açık kalabilir. Yeni simgeyi çizmeden önce ekranı temizlemek, eski piksellerin yeni şekle karışmasını önler.
Oyunu iki kişi oynarken her oyuncunun sonucu nasıl gösterilir?
Tek micro:bit kullanıyorsan oyuncular sırayla sallama yapar ve kart her turda yalnızca o turun taş, kağıt veya makas sonucunu gösterir. Oyuncu bazlı puan için her oyuncuya ayrı değişken tanımlayıp ilgili düğme olayında doğru değişkeni artırabilirsin.
Bu skor ekiyle oyunun rastgele sonuç üretme bölümünü basit bir sayaçla birleştirebilir, ardından farklı puan kuralları ekleyerek kendi oyun düzenini geliştirebilirsin.