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.

javascript
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ı?