Bölüm 3 — Ek Sorular
Her ana başlık için 10 çoktan seçmeli değerlendirme sorusu. Bölüm sonu sınav veya pekiştirme amaçlıdır.
Ana Başlık 1 için 10 Soru
SORU 1: Aşağıdaki yaklaşımlardan hangisi oyun sketch’inde daha sağlam bir geliştirmedir?
A) Konu dışı teknolojiye (biçim/dil dışı) sapıp temel kuralı atlamak
B) Öğrenilen p5.js API’si ile ölçülebilir bir oyun kuralı eklemek
C) draw içinde createCanvas tekrarlamak
D) Skoru her frame koşulsuz artırmak
E) Hata ayıklamadan uzun kodu olduğu gibi bırakmak
Doğru cevap: B
Genel açıklama: Geliştirme, öğrenilen araçlarla kural eklemeyi hedefler; alandan kopuk şıklar elenir. İlgili Konu: Pekiştirme
SORU 2: Aşağıdaki yaklaşımlardan hangisi oyun sketch’inde daha sağlam bir geliştirmedir?
A) Konu dışı teknolojiye (biçim/dil dışı) sapıp temel kuralı atlamak
B) Öğrenilen p5.js API’si ile ölçülebilir bir oyun kuralı eklemek
C) draw içinde createCanvas tekrarlamak
D) Skoru her frame koşulsuz artırmak
E) Hata ayıklamadan uzun kodu olduğu gibi bırakmak
Doğru cevap: B
Genel açıklama: Geliştirme, öğrenilen araçlarla kural eklemeyi hedefler; alandan kopuk şıklar elenir. İlgili Konu: Pekiştirme
SORU 3: Aşağıdaki yaklaşımlardan hangisi oyun sketch’inde daha sağlam bir geliştirmedir?
A) Konu dışı teknolojiye (biçim/dil dışı) sapıp temel kuralı atlamak
B) Öğrenilen p5.js API’si ile ölçülebilir bir oyun kuralı eklemek
C) draw içinde createCanvas tekrarlamak
D) Skoru her frame koşulsuz artırmak
E) Hata ayıklamadan uzun kodu olduğu gibi bırakmak
Doğru cevap: B
Genel açıklama: Geliştirme, öğrenilen araçlarla kural eklemeyi hedefler; alandan kopuk şıklar elenir. İlgili Konu: Pekiştirme
SORU 4: Hız değişkenini “birim / saniye” tutmanın yararı nedir?
A) deltaTime ile çarpınca anlamın net kalması
B) Klavyenin kapanması
C) Matematiğin kalkması
D) Sunucu zorunluluğu
E) SQL zorunluluğu
Doğru cevap: A
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 1.4
SORU 5: «deltaTime ile Zaman Tabanlı Hareket» bağlamında hangisi daha iyi bir sonraki adım geliştirmedir?
A) Konu dışı bir CSS animasyonu eklemek
B) Mevcut sketch’e ölçülebilir bir kural (skor, sınır, durum) eklemek
C) Tuvali silip boş bırakmak
D) setup’ı tamamen kaldırmak
E) Rastgele sözdizimi hatası bırakmak
Doğru cevap: B
Genel açıklama: Geliştirme mevcut öğrenilen API ile kural ekler. İlgili Konu: 1.uygulama
SORU 6: Aşağıdaki hangi seçenek tipik bir çeldirici bug senaryosudur?
A) dist ile isabet, ardından skoru bir kez artırmak
B) draw içinde koşulsuz skor artışı
C) createCanvas’ı setup içinde bir kez çağırmak
D) background ile frame temizlemek
E) keyIsDown ile sürekli hareket
Doğru cevap: B
Genel açıklama: Koşulsuz artış her frame şişer — görünür bug. İlgili Konu: 1.uygulama
SORU 7: Kod okuma: if (x > width) { x = 0; } ne yapar?
A) Y’yi sıfırlar
B) X tuval sağını aşınca sola sarar
C) FPS’i sıfırlar
D) Fareyi kilitler
E) Diziyi temizler
Doğru cevap: B
Genel açıklama: Yatay sarma (wrap) kalıbı. İlgili Konu: 1.uygulama
SORU 8: Bu ana başlıkta (deltaTime ile Zaman Tabanlı Hareket) hangi uygulama en uygundur?
A) Öğrenilen API’yi bilinçli yok sayıp rastgele hazır kütüphane çağırmak
B) Anlatılan kavramı küçük bir sketch’te görünür çıktıyla denemek
C) Konuyu yalnızca okuyup hiç kod yazmamak
D) Tuval boyutunu her frame rastgele değiştirmek
E) Hata ayıklamadan uzun kod kopyalamak
Doğru cevap: B
Genel açıklama: Seçenek konu başlığıyla örtüşür; diğerleri alandan kopuk. İlgili Konu: 1.uygulama
SORU 9: console.log ayıklamada asıl faydası nedir?
A) Tuval çözünürlüğünü artırır
B) Ara değerleri görüp yanlış varsayımı yakalamayı sağlar
C) Otomatik çarpışma ekler
D) draw’ı durdurur
E) Kaynakça üretir
Doğru cevap: B
Genel açıklama: Gözlemlenebilir ara durum. İlgili Konu: 1.uygulama
SORU 10: Bir fonksiyonu parametreli yazmanın faydası?
A) FPS’i kilitlemek
B) Aynı mantığı farklı argümanlarla yeniden kullanmak
C) setup’ı kaldırmak
D) HTML’i silmek
E) Rengi yasaklamak
Doğru cevap: B
Genel açıklama: Modülerlik ve yeniden kullanım. İlgili Konu: 1.uygulama
Ana Başlık 2 için 10 Soru
SORU 1: JavaScript dizilerinde ilk elemanın indeksi nedir?
A) 1
B) 0
C) -1
D) length
E) undefined
Doğru cevap: B
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 2.1
SORU 2: dizi.push(5) ne yapar?
A) İlk elemanı siler
B) 5’i dizinin sonuna ekler
C) Tuvali temizler
D) FPS’i 5 yapar
E) setup’ı yeniden çalıştırır
Doğru cevap: B
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 2.2
SORU 3: Aşağıdaki yaklaşımlardan hangisi oyun sketch’inde daha sağlam bir geliştirmedir?
A) Konu dışı teknolojiye (biçim/dil dışı) sapıp temel kuralı atlamak
B) Öğrenilen p5.js API’si ile ölçülebilir bir oyun kuralı eklemek
C) draw içinde createCanvas tekrarlamak
D) Skoru her frame koşulsuz artırmak
E) Hata ayıklamadan uzun kodu olduğu gibi bırakmak
Doğru cevap: B
Genel açıklama: Geliştirme, öğrenilen araçlarla kural eklemeyi hedefler; alandan kopuk şıklar elenir. İlgili Konu: Pekiştirme
SORU 4: Paralel diziler ne anlama gelir?
A) İki dizinin aynı indekste ilişkili özellik tutması
B) İki tarayıcının zorunlu açılması
C) Yalnızca string birleştirme
D) CSS grid
E) Git branch
Doğru cevap: A
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 2.4
SORU 5: «Dizi Temelleri: Tanım, Erişim ve push/pop» bağlamında hangisi daha iyi bir sonraki adım geliştirmedir?
A) Konu dışı bir CSS animasyonu eklemek
B) Mevcut sketch’e ölçülebilir bir kural (skor, sınır, durum) eklemek
C) Tuvali silip boş bırakmak
D) setup’ı tamamen kaldırmak
E) Rastgele sözdizimi hatası bırakmak
Doğru cevap: B
Genel açıklama: Geliştirme mevcut öğrenilen API ile kural ekler. İlgili Konu: 2.uygulama
SORU 6: Aşağıdaki hangi seçenek tipik bir çeldirici bug senaryosudur?
A) dist ile isabet, ardından skoru bir kez artırmak
B) draw içinde koşulsuz skor artışı
C) createCanvas’ı setup içinde bir kez çağırmak
D) background ile frame temizlemek
E) keyIsDown ile sürekli hareket
Doğru cevap: B
Genel açıklama: Koşulsuz artış her frame şişer — görünür bug. İlgili Konu: 2.uygulama
SORU 7: Kod okuma: if (x > width) { x = 0; } ne yapar?
A) Y’yi sıfırlar
B) X tuval sağını aşınca sola sarar
C) FPS’i sıfırlar
D) Fareyi kilitler
E) Diziyi temizler
Doğru cevap: B
Genel açıklama: Yatay sarma (wrap) kalıbı. İlgili Konu: 2.uygulama
SORU 8: Bu ana başlıkta (Dizi Temelleri: Tanım, Erişim ve push/pop) hangi uygulama en uygundur?
A) Öğrenilen API’yi bilinçli yok sayıp rastgele hazır kütüphane çağırmak
B) Anlatılan kavramı küçük bir sketch’te görünür çıktıyla denemek
C) Konuyu yalnızca okuyup hiç kod yazmamak
D) Tuval boyutunu her frame rastgele değiştirmek
E) Hata ayıklamadan uzun kod kopyalamak
Doğru cevap: B
Genel açıklama: Seçenek konu başlığıyla örtüşür; diğerleri alandan kopuk. İlgili Konu: 2.uygulama
SORU 9: console.log ayıklamada asıl faydası nedir?
A) Tuval çözünürlüğünü artırır
B) Ara değerleri görüp yanlış varsayımı yakalamayı sağlar
C) Otomatik çarpışma ekler
D) draw’ı durdurur
E) Kaynakça üretir
Doğru cevap: B
Genel açıklama: Gözlemlenebilir ara durum. İlgili Konu: 2.uygulama
SORU 10: Bir fonksiyonu parametreli yazmanın faydası?
A) FPS’i kilitlemek
B) Aynı mantığı farklı argümanlarla yeniden kullanmak
C) setup’ı kaldırmak
D) HTML’i silmek
E) Rengi yasaklamak
Doğru cevap: B
Genel açıklama: Modülerlik ve yeniden kullanım. İlgili Konu: 2.uygulama
Ana Başlık 3 için 10 Soru
SORU 1: Aşağıdaki yaklaşımlardan hangisi oyun sketch’inde daha sağlam bir geliştirmedir?
A) Konu dışı teknolojiye (biçim/dil dışı) sapıp temel kuralı atlamak
B) Öğrenilen p5.js API’si ile ölçülebilir bir oyun kuralı eklemek
C) draw içinde createCanvas tekrarlamak
D) Skoru her frame koşulsuz artırmak
E) Hata ayıklamadan uzun kodu olduğu gibi bırakmak
Doğru cevap: B
Genel açıklama: Geliştirme, öğrenilen araçlarla kural eklemeyi hedefler; alandan kopuk şıklar elenir. İlgili Konu: Pekiştirme
SORU 2: Paralel x ve y dizilerinde aynı indeks ne anlama gelir?
A) İki farklı oyunun skoru
B) Aynı varlığın ilişkili özellikleri
C) Rastgele iki tarayıcı
D) Zorunlu ses kanalı
E) Git commit
Doğru cevap: B
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 3.2
SORU 3: Aşağıdaki yaklaşımlardan hangisi oyun sketch’inde daha sağlam bir geliştirmedir?
A) Konu dışı teknolojiye (biçim/dil dışı) sapıp temel kuralı atlamak
B) Öğrenilen p5.js API’si ile ölçülebilir bir oyun kuralı eklemek
C) draw içinde createCanvas tekrarlamak
D) Skoru her frame koşulsuz artırmak
E) Hata ayıklamadan uzun kodu olduğu gibi bırakmak
Doğru cevap: B
Genel açıklama: Geliştirme, öğrenilen araçlarla kural eklemeyi hedefler; alandan kopuk şıklar elenir. İlgili Konu: Pekiştirme
SORU 4: push/pop yerine sabit kapasite seçmek ne sağlar?
A) Üst sınırın ve döngünün öngörülebilir kalması
B) Matematiğin kalkması
C) Farein kapanması
D) Zorunlu 3B
E) Sunucu kurulumu
Doğru cevap: A
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 3.4
SORU 5: «Sabit Kapasite ve Paralel Dizilerle Mini Sahne» bağlamında hangisi daha iyi bir sonraki adım geliştirmedir?
A) Konu dışı bir CSS animasyonu eklemek
B) Mevcut sketch’e ölçülebilir bir kural (skor, sınır, durum) eklemek
C) Tuvali silip boş bırakmak
D) setup’ı tamamen kaldırmak
E) Rastgele sözdizimi hatası bırakmak
Doğru cevap: B
Genel açıklama: Geliştirme mevcut öğrenilen API ile kural ekler. İlgili Konu: 3.uygulama
SORU 6: Aşağıdaki hangi seçenek tipik bir çeldirici bug senaryosudur?
A) dist ile isabet, ardından skoru bir kez artırmak
B) draw içinde koşulsuz skor artışı
C) createCanvas’ı setup içinde bir kez çağırmak
D) background ile frame temizlemek
E) keyIsDown ile sürekli hareket
Doğru cevap: B
Genel açıklama: Koşulsuz artış her frame şişer — görünür bug. İlgili Konu: 3.uygulama
SORU 7: Kod okuma: if (x > width) { x = 0; } ne yapar?
A) Y’yi sıfırlar
B) X tuval sağını aşınca sola sarar
C) FPS’i sıfırlar
D) Fareyi kilitler
E) Diziyi temizler
Doğru cevap: B
Genel açıklama: Yatay sarma (wrap) kalıbı. İlgili Konu: 3.uygulama
SORU 8: Bu ana başlıkta (Sabit Kapasite ve Paralel Dizilerle Mini Sahne) hangi uygulama en uygundur?
A) Öğrenilen API’yi bilinçli yok sayıp rastgele hazır kütüphane çağırmak
B) Anlatılan kavramı küçük bir sketch’te görünür çıktıyla denemek
C) Konuyu yalnızca okuyup hiç kod yazmamak
D) Tuval boyutunu her frame rastgele değiştirmek
E) Hata ayıklamadan uzun kod kopyalamak
Doğru cevap: B
Genel açıklama: Seçenek konu başlığıyla örtüşür; diğerleri alandan kopuk. İlgili Konu: 3.uygulama
SORU 9: console.log ayıklamada asıl faydası nedir?
A) Tuval çözünürlüğünü artırır
B) Ara değerleri görüp yanlış varsayımı yakalamayı sağlar
C) Otomatik çarpışma ekler
D) draw’ı durdurur
E) Kaynakça üretir
Doğru cevap: B
Genel açıklama: Gözlemlenebilir ara durum. İlgili Konu: 3.uygulama
SORU 10: Bir fonksiyonu parametreli yazmanın faydası?
A) FPS’i kilitlemek
B) Aynı mantığı farklı argümanlarla yeniden kullanmak
C) setup’ı kaldırmak
D) HTML’i silmek
E) Rengi yasaklamak
Doğru cevap: B
Genel açıklama: Modülerlik ve yeniden kullanım. İlgili Konu: 3.uygulama
Ana Başlık 4 için 10 Soru
SORU 1: Sürekli yürüme hareketi için en uygun yapı hangisidir?
A) Yalnızca keyPressed() içinde konum artırmak
B) draw() içinde keyIsDown() ile konum güncellemek
C) Yalnızca setup() içinde keyIsDown() kullanmak
D) background() ile tuş okumak
E) createCanvas() her frame çağırmak
Doğru cevap: B
Genel açıklama: Basılı tutma draw() döngüsünde keyIsDown ile okunur. İlgili Konu: 2.2. keyIsDown ile Sürekli Hareket
SORU 2: Zıplama veya tek atışlı ateş gibi eylem için hangi olay fonksiyonu daha uygundur?
A) draw() içinde sürekli keyIsDown
B) keyPressed()
C) setup()
D) background()
E) createCanvas()
Doğru cevap: B
Genel açıklama: keyPressed() bir basışta bir kez tetiklenir; tekrarlayan hareket için uygun değildir. İlgili Konu: 2.3. keyPressed ve Tek Seferlik Eylemler
SORU 3: Ok tuşları için genelde hangi değişken kullanılır?
A) mouseX
B) keyCode
C) frameCount
D) deltaTime
E) push()
Doğru cevap: B
Genel açıklama: Ok tuşları gibi özel tuşlar keyCode ile (LEFT_ARROW, RIGHT_ARROW vb.) okunur. İlgili Konu: 2.4. key ve keyCode
SORU 4: [Kod okuma] HIZ = 200, deltaTime ≈ 16.7 ms iken aşağıdaki blok bir frame'de kareX değerini yaklaşık ne kadar artırır?
Kod 1.
if (keyIsDown(RIGHT_ARROW)) { kareX = kareX + HIZ * deltaTime / 1000;}A) 200 piksel
B) Yaklaşık 3.3 piksel
C) 16.7 piksel
D) 0 piksel
E) 1000 piksel
Doğru cevap: B
Genel açıklama: 200 × 0.0167 ≈ 3.3 piksel; hız saniye başına tanımlıdır. İlgili Konu: 2.2 (deltaTime ile birleşim)
SORU 5: constrain(oyuncuX, 0, width - BOYUT) satırının amacı nedir?
A) FPS artırmak
B) Oyuncu konumunu tuval sınırları içinde tutmak
C) Klavye olayını silmek
D) Diziye eleman eklemek
E) R tuşunu devre dışı bırakmak
Doğru cevap: B
Genel açıklama: constrain değeri min–max aralığına sıkıştırır; kare ekran dışına çıkmaz. İlgili Konu: 2.5. Klavye ile Kontrol Edilen Kare
SORU 6: key === "a" ifadesi ne zaman anlamlıdır?
A) Her frame otomatik true olur
B) keyPressed() veya keyReleased() çalıştığında basılan tuşu kontrol eder
C) Yalnızca fare tıklanınca
D) Tuval genişliğini verir
E) Dizi uzunluğunu döndürür
Doğru cevap: B
Genel açıklama: key olay anındaki karakter tuşunu verir; sürekli okuma için keyIsDown kullanılır. İlgili Konu: 2.3 ve 2.4
SORU 7: WASD ve ok tuşlarını birlikte desteklemek neden tercih edilir?
A) FPS düşürmek için
B) Farklı klavye alışkanlıklarına erişilebilir kontrol sunmak için
C) Diziyi silmek için
D) Çarpışma testini kapatmak için
E) Tuvali küçültmek için
Doğru cevap: B
Genel açıklama: İki kontrol şeması aynı hareketi farklı tuşlarla sağlar. İlgili Konu: 2.5. Klavye ile Kontrol Edilen Kare
SORU 8: [Kod okuma] Aşağıdaki kodda keyIsDown(LEFT_ARROW) || keyIsDown(65) ifadesi ne zaman true olur?
A) Yalnızca SPACE basılıyken
B) Sol ok veya A tuşundan en az biri basılıyken
C) Yalnızca fare tuval üzerindeyken
D) draw() hiç çalışmıyorken
E) setup() tamamlandıktan sonra bir kez
Doğru cevap: B
Genel açıklama: || en az bir koşul true ise true döner. İlgili Konu: 2.5
SORU 9: I. keyIsDown() her frame kontrol edilebilir.
II. keyPressed() tek basışta bir kez çalışır.
III. Klavye girdisi tuval odak dışındayken her zaman alınır.
Hangileri doğrudur?
A) Yalnız I
B) I ve II
C) Yalnız III
D) II ve III
E) I, II ve III
Doğru cevap: B
Genel açıklama: I ve II doğru. III yanlış; önizleme panelinin odakta olması gerekir. İlgili Konu: 2.1–2.3
SORU 10: Klavye ile hareket eden kare örneğinde hız neden deltaTime ile çarpılır?
A) Dizi indeksini hesaplamak için
B) Frame hızından bağımsız tutarlı hareket için (Ana Başlık 1)
C) Tuval rengini değiştirmek için
D) mousePressed() tetiklemek için
E) Kazanan kontrolü yapmak için
Doğru cevap: B
Genel açıklama: Ana Başlık 1'deki zaman tabanlı hareket klavye girdisiyle birleştirilir. İlgili Konu: 2.2 ve 2.5
Ana Başlık 1 — Açık Uçlu
A1. «deltaTime ile Zaman Tabanlı Hareket» konusundaki merkezi kavramı kendi cümlelerinizle açıklayın ve bunu somut bir mini oyun / sketch örneğine bağlayın.
A2. «deltaTime ile Zaman Tabanlı Hareket» için küçük bir varyasyon tasarlayın (yeni kural, sınır durumu veya görsel geri bildirim). Hangi fonksiyonlar değişir? Madde madde yazın.
A3. Bu ana başlıkta sık yapılan bir yanlış varsayımı (yanlış indeks, sıra, durum veya veri modeli) seçin; neden hatalı olduğunu ve doğru yaklaşımı iki–üç cümleyle yazın.
Ana Başlık 2 — Açık Uçlu
A1. «Dizi Temelleri: Tanım, Erişim ve push/pop» konusundaki merkezi kavramı kendi cümlelerinizle açıklayın ve bunu somut bir mini oyun / sketch örneğine bağlayın.
A2. «Dizi Temelleri: Tanım, Erişim ve push/pop» için küçük bir varyasyon tasarlayın (yeni kural, sınır durumu veya görsel geri bildirim). Hangi fonksiyonlar değişir? Madde madde yazın.
A3. Bu ana başlıkta sık yapılan bir yanlış varsayımı (yanlış indeks, sıra, durum veya veri modeli) seçin; neden hatalı olduğunu ve doğru yaklaşımı iki–üç cümleyle yazın.
Ana Başlık 3 — Açık Uçlu
A1. «Sabit Kapasite ve Paralel Dizilerle Mini Sahne» konusundaki merkezi kavramı kendi cümlelerinizle açıklayın ve bunu somut bir mini oyun / sketch örneğine bağlayın.
A2. «Sabit Kapasite ve Paralel Dizilerle Mini Sahne» için küçük bir varyasyon tasarlayın (yeni kural, sınır durumu veya görsel geri bildirim). Hangi fonksiyonlar değişir? Madde madde yazın.
A3. Bu ana başlıkta sık yapılan bir yanlış varsayımı (yanlış indeks, sıra, durum veya veri modeli) seçin; neden hatalı olduğunu ve doğru yaklaşımı iki–üç cümleyle yazın.
Ana Başlık 4 — Açık Uçlu
A1. Bir oyun için kontrol tablosu oluşturun: hangi tuşlar keyIsDown, hangileri keyPressed ile okunmalı? Gerekçe yazın.
Örnek yanıt unsurları: WASD sürekli; SPACE/R tek seferlik.
Değerlendirme: Tuş–olay eşlemesi tutarlı mı?
A2. constrain() ile manuel sınır if testi arasında ne zaman hangisini tercih edersiniz?
Örnek yanıt unsurları: constrain engelleme; sekme için açık if + hız tersi.
Değerlendirme: Ana Başlık 2–3 köprüsü kurulmuş mu?
A3. Tuval odak dışıyken klavye çalışmıyorsa kullanıcıya ne önerirsiniz?
Örnek yanıt unsurları: Önizleme paneline tıklama.
Değerlendirme: Pratik çözüm var mı?