Ana Sayfa · Akademi · Robotik ve Kodlama · Scratch ile Programlama · Proje: Basketbol Atış Oyunu

Proje: Basketbol Atış Oyunu

Atış gücü, yerçekimi ve puanla basit bir basketbol atış oyunu tasarla.

PROJE PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Bu derste Scratch’te bir basketbol atış oyunu yapıyoruz: atış gücünü ve açısını ayarlıyoruz, topu yerçekimiyle harekete geçiriyoruz, potaya değince puan kazanıyor ve deneme sayısını sayıyoruz.

Üretilecek kanıt

Aşağıdaki adımları sırayla dene: Yeni bir Scratch projesi aç ve iki kukla ekle: Top ve Pota . puan , deneme , güç , açı , hız_y değişkenlerini oluştur. güç ve açı değişkenlerini kaydırıcıya çevir. Yukarıdaki dört blok dizisini ilgili kuklalara ekle. Farklı güç ve açı değerleriyle en az beş atış yap. Test senaryoları Az güç: Güç çok düşükken top potaya…

Kontrol tuzağı

Yerçekimini unutmak "hız_y" değişkenini -1 değiştir satırını koymazsan top düz bir çizgide gider ve hiç düşmez. Atış eğrisi oluşmaz. Değişkeni sıfırlamamak Her atıştan önce hız_y değerini yeniden güç yapmazsan, ikinci atış bir öncekinin kalan hızıyla başlar ve tuhaf davranır. Her atışta başlangıç değerlerini yeniden…

Sonraki bağlantı

Proje: Robot Görev Simülasyonu

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre45–75 dk
Ön koşulProje: Labirent Oyunu
İçerikProje rehberi · 1.626 kelime
Son güncelleme

Bir cümlelik özet

Bu derste Scratch’te bir basketbol atış oyunu yapıyoruz: atış gücünü ve açısını ayarlıyoruz, topu yerçekimiyle harekete geçiriyoruz, potaya değince puan kazanıyor ve deneme sayısını sayıyoruz.

Neden önemli?

Basketbol oynamayı seviyorum. Sahada bir atışın girmesi için gücü, açıyı ve zamanlamayı ayarlarız. Bilgisayarda bir atış oyunu yaparken de aynı fikirleri kullanıyoruz; ama bu kez topun yolunu kendimiz kodluyoruz.

Bu proje, önceki derslerde öğrendiğimiz üç yapıyı bir araya getiriyor: sıralama (atış adımları belli bir sırayla olur), koşul (top potaya değdiyse puan ver) ve tekrar (top havada olduğu sürece hareketi sürdür). Ayrıca yeni bir fikir ekliyoruz: bir nesneyi klonlamak ve ona yerçekimi benzeri bir hareket vermek.

Bu bir oyun projesidir, gerçek fizik simülasyonu değildir. Amacımız oynanabilir ve öğretici bir oyun yapmak; kusursuz bir fizik motoru kurmak değil.

Oyunu planlamak

Kod yazmadan önce oyunun ne yapacağını sade cümlelerle yazmak işi kolaylaştırır. Bu, önceki derslerde gördüğümüz sözde koda benzer.

Oyunun kuralları

Kullanacağımız kuklalar (sprite) ve değişkenler

Bir kukla (sprite), sahnede hareket eden nesnedir. Bir değişken (variable), oyunun akılda tuttuğu bir sayıdır.

Burada hız_y, topun dikey (yukarı–aşağı) hızını tutar. Yerçekimi bu değeri her adımda biraz azaltarak topun önce yükselip sonra düşmesini sağlar.

Atış gücü ve açısı

Gerçek bir atışta iki şeyi ayarlarız: ne kadar sert attığımız (güç) ve topu hangi yöne yolladığımız (açı). Oyunda bunları iki değişkenle temsil ediyoruz.

Değişkenleri kaydırıcıya çevirmek

Değişkenler panelinde güç ve açı değişkenlerine sağ tıklayıp “kaydırıcı” (slider) seçeneğini açarsan, oyuncu sahnede fareyle bu değerleri değiştirebilir. Böylece her denemede farklı bir atış yapılabilir.

Örnek: atış başlangıcı

Aşağıdaki blok dizisi, yeşil bayrağa basınca topu başlangıç noktasına koyar ve seçilen güce göre ilk hızını verir.

yeşil bayrağa tıklandığında
"deneme" değişkenini 0 yap
"puan" değişkenini 0 yap
x: -180 y: -120 konumuna git
yönü (açı) derece yap
"hız_y" değişkenini (güç) yap

Burada hız_y değişkenine güç değerini vererek topun yukarı doğru ilk hızını belirliyoruz. Yön bloğu ise topun hangi açıyla ilerleyeceğini ayarlıyor.

Topu yerçekimiyle hareket ettirmek

Şimdi projenin en önemli parçasına geliyoruz: topun yolu. Top hem ileri gider hem de yerçekimiyle aşağı çekilir.

Yerçekimi fikri

Gerçek dünyada top yukarı atılınca yavaşlar, durur ve düşmeye başlar. Bunu oyunda taklit etmek için her adımda hız_y değerini biraz azaltırız. Buna bir çeşit yerçekimi diyebiliriz.

Örnek: uçuş döngüsü

Aşağıdaki döngü, topu yatayda açı yönünde ilerletirken dikeyde hız_y kadar kaydırır, sonra yerçekimini uygular.

"Top_at" mesajını aldığında
sürekli tekrarla
  (açı) yönünde 5 adım git
  y konumunu (hız_y) değiştir
  "hız_y" değişkenini -1 değiştir
  eğer <y konumu < -140> ise
    "deneme" değişkenini 1 değiştir
    dur (bu kuklada çalışan diğerleri)

Bu döngüde:

Puan ve potaya değme

Bir atışın “girmesi” için topun potaya değmesi gerekir. Bunu Algılama (Sensing) kategorisindeki değme bloğuyla kontrol ederiz.

Örnek: puan koşulu

Aşağıdaki blok dizisi, top potaya değdiği anda puanı artırır ve topu durdurur.

"Top_at" mesajını aldığında
sürekli tekrarla
  eğer <"Pota" kuklasına değiyor?> ise
    "puan" değişkenini 1 değiştir
    "Basket!" de (1 saniye)
    dur (bu kuklada çalışan diğerleri)

Burada <"Pota" kuklasına değiyor?> bloğu bir koşuldur: yalnız top potaya değdiğinde içerideki adımlar çalışır. dur bloğu, aynı atışta puanın birden çok kez sayılmasını engeller.

Atışı başlatmak

Oyuncunun tıklamayla atış yapmasını istiyoruz. Şu kısa dizi, boşluk tuşuna basınca atışı başlatır:

boşluk tuşuna basıldığında
x: -180 y: -120 konumuna git
"hız_y" değişkenini (güç) yap
yönü (açı) derece yap
"Top_at" mesajını gönder

Böylece oyuncu gücü ve açıyı ayarladıktan sonra boşluğa basarak yeni bir atış yapar.

Mini uygulama

Aşağıdaki adımları sırayla dene:

  1. Yeni bir Scratch projesi aç ve iki kukla ekle: Top ve Pota.
  2. puan, deneme, güç, açı, hız_y değişkenlerini oluştur.
  3. güç ve açı değişkenlerini kaydırıcıya çevir.
  4. Yukarıdaki dört blok dizisini ilgili kuklalara ekle.
  5. Farklı güç ve açı değerleriyle en az beş atış yap.

Test senaryoları

Geliştirme fikirleri

Projeyi güçlendirme planı

Proje: Basketbol Atış Oyunu için yalnız çalışan bir gösterim hazırlamak yeterli değildir. İyi bir proje; hedefi, kullanıcıyı, sınırları, test koşullarını ve başarısız denemeleri de görünür kılar. Bu genişletme çalışmasında labirentte duvara değince başlangıca dönen karakter bağlamını kullanarak çalışan bir Scratch sahnesi, blok düzeni ve test listesi oluştur. Dersin hedefi “Atış gücü, yerçekimi ve puanla basit bir basketbol atış oyunu tasarla” olsa da proje sayfasında ölçülmemiş bir sonucu kesin başarı gibi yazma.

1. Proje özeti ve kapsam

Önce üç cümle yaz: Çözmek istediğin sorun nedir, bu sorun kimin için önemlidir ve ilk sürüm özellikle neyi yapmayacaktır? Kapsam dışını belirtmek projeyi küçültmez; tamamlanabilir hâle getirir. Oyunu planlamak ile Kullanacağımız kuklalar (sprite) ve değişkenler arasındaki ilişkiyi projenin temel varsayımı olarak yaz ve bu varsayımı hangi testin doğrulayacağını belirt.

2. Kabul ölçütleri

“Proje: Basketbol Atış Oyunu” için kabul ölçütlerini “çalışıyor” gibi belirsiz sözcüklerle bırakma. Süre, mesafe, doğru deneme sayısı, ekran genişliği veya kullanıcı adımı gibi gözlenebilir bir ölçü seç. Ölçüm mümkün değilse en azından üç ardışık denemede aynı davranışın görülüp görülmediğini kaydet.

3. Test matrisi

3. Test matrisi tablosu
TestKoşulBeklenenGerçek sonuçSonraki karar
NormalStandart giriş ve tam bağlantıTemel görev tamamlanırTest sırasında doldurKoru veya küçük iyileştirme yap
SınırEn düşük ya da en yüksek kabul edilen değerSistem kararlı kalırTest sırasında doldurEşiği veya kuralı gözden geçir
HataEksik, yanlış ya da beklenmeyen girişGüvenli ve anlaşılır tepkiTest sırasında doldurHata yönetimi ekle
TekrarAynı koşulda en az üç denemeBenzer sonuçlarTest sırasında doldurTutarsızlığın kaynağını araştır

4. Sürüm günlüğü

“Proje: Basketbol Atış Oyunu” projesinin her sürümü için tarih, değiştirdiğin tek ana karar, değişikliğin nedeni ve test sonucu yaz. İlk sürümün çalışmaması başarısızlık değildir; Oyunu planlamak veya Kullanacağımız kuklalar (sprite) ve değişkenler ile ilgili hangi varsayımın yeniden düşünülmesi gerektiğini gösteren veridir. Görsel kullanırken kişisel bilgi ve özel arka plan ayrıntılarını paylaşma.

5. Sunum ve öz değerlendirme

“Proje: Basketbol Atış Oyunu” projesini iki dakikada anlatacak şekilde hazırlan: sorun, çözüm yaklaşımı, labirentte duvara değince başlangıca dönen karakter için en önemli test sonucu ve bir sonraki adım. “Tamamlandı” demek yerine hangi kısmın doğrulandığını ve hangi kısmın hâlâ geliştirilmesi gerektiğini açıkla.

Sık yapılan hatalar

Yerçekimini unutmak

"hız_y" değişkenini -1 değiştir satırını koymazsan top düz bir çizgide gider ve hiç düşmez. Atış eğrisi oluşmaz.

Değişkeni sıfırlamamak

Her atıştan önce hız_y değerini yeniden güç yapmazsan, ikinci atış bir öncekinin kalan hızıyla başlar ve tuhaf davranır. Her atışta başlangıç değerlerini yeniden ver.

Puanın birden çok sayılması

dur bloğunu koymazsan, top potaya değdiği birkaç adım boyunca puan sürekli artar. Bir atış girince döngüyü durdur.

Beklenen sonucu yazmadan test etmek

“Çalışmıyor” demek yetmez. Önce ne beklediğini yaz (“top yükselip düşmeli”), sonra ne olduğunu gözlemle. İlk farkın oluştuğu adımı bul ve yalnız onu düzelt.

Güvenlik notu

Bu ders tümüyle ekran başında yapılır; elektronik veya alet kullanılmaz. Yine de uzun süre ekrana bakmak yorucu olabilir. Her 20–30 dakikada bir kısa mola ver, gözlerini dinlendir ve mümkünse gerçek bir topla birkaç atış yaparak hareket et. Projeni internette paylaşmadan önce bir yetişkine danış.

Ders özeti

Kontrol soruları

  1. Oyunda hız_y değişkeni neyi temsil eder?
  2. Topun havada eğri çizerek düşmesini sağlayan satır hangisidir?
  3. <"Pota" kuklasına değiyor?> bloğu hangi kategoridedir ve ne işe yarar?
  4. Her atıştan önce hangi değerleri yeniden ayarlamak gerekir? Neden?
  5. dur bloğunu koymazsak puanla ilgili hangi hata oluşur?

Cevaplar

  1. hız_y, topun dikey (yukarı–aşağı) hızını tutar. Yerçekimi bu değeri azaltarak topun önce yükselip sonra düşmesini sağlar.
  2. "hız_y" değişkenini -1 değiştir satırı. Bu satır her adımda dikey hızı azaltır ve atış eğrisini oluşturur.
  3. Algılama (Sensing) kategorisindedir. Topun potaya değip değmediğini kontrol eder; bir koşul olarak kullanılır.
  4. En az hız_y (yeniden güç değeri), başlangıç konumu ve yön. Böylece her atış aynı temiz başlangıçtan başlar; bir önceki atışın kalan hızıyla karışmaz.
  5. Puan bir atışta birden çok kez artar, çünkü top potaya değdiği birkaç adım boyunca koşul sürekli doğru kalır.

Ek doğrulama görevi

“Proje: Basketbol Atış Oyunu” için ikinci bir örnek oluştur: labirentte duvara değince başlangıca dönen karakter. İlk çözümü aynen kopyalamak yerine Oyunu planlamak kavramının hangi bölümde, Kullanacağımız kuklalar (sprite) ve değişkenler kavramının hangi kararda kullanıldığını işaretle. Sonucu değerlendirmek için şu iki soruya yazılı cevap ver: “Beklediğim davranış neydi?” ve “Gerçekte hangi kanıtı gördüm?”

Ardından kontrol listesinden özellikle “Yeşil bayrakla başlangıç durumu doğru kuruluyor mu?” ve “Oyun yeniden başlatıldığında önceki durum temizleniyor mu?” maddelerini kullan. İlk denemede fark bulamazsan bir sınır koşulu ekle; örneğin en küçük değer, en büyük değer, boş giriş, bağlantı kaybı veya yeniden başlatma durumu. Son notunda yaptığın tek değişikliği ve bu değişikliğin sonucu nasıl etkilediğini açıkla.

Kaynak ve doğrulama notu

“Proje: Basketbol Atış Oyunu” dersi için doğrulama odağı Oyunu planlamak ile Kullanacağımız kuklalar (sprite) ve değişkenler arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Blok adları Scratch’in güncel temel kategorileriyle uyumlu tutulmuştur. Proje davranışı; başlangıç, normal oyun, hata ve yeniden başlatma durumlarında ayrı ayrı denenmelidir.

Sonraki ders

Proje: Robot Görev Simülasyonu

Quiz’i BaşlatScratch ile Programlama bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.