Bölüm 2 — 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: for başlığındaki üç parça sırasıyla neyi kontrol eder?
A) Dosya, ağ, bellek
B) Başlangıç, devam koşulu, artış/adım
C) Renk, stroke, fill
D) HTML, CSS, JS
E) Yalnızca fare olayları
Doğru cevap: B
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 1.1
SORU 2: draw() içinde while (true) yazmak genelde neye yol açar?
A) Animasyonu güvenle hızlandırır
B) Frame bitmez; animasyon yavaşlar veya tarayıcı kilitlenebilir
C) Yalnızca rengi değiştirir
D) for döngüsünü zorunlu kılar
E) Hiçbir etkisi olmaz
Doğru cevap: B
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 1.2
SORU 3: break ne yapar?
A) Programı yeniden başlatır
B) En içteki döngüyü hemen sonlandırır
C) Tuvali siler
D) FPS’i 60 yapar
E) String birleştirir
Doğru cevap: B
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 1.3
SORU 4: continue ne yapar?
A) Döngüyü başa sarıp tüm programı bitirir
B) Bu turdaki kalan gövdeyi atlayıp sonraki tura geçer
C) setup’ı siler
D) mousePressed zorunlu kılar
E) Diziyi sıralar
Doğru cevap: B
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 1.4
SORU 5: «for, while ve Döngü Kontrolü» 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 (for, while ve Döngü Kontrolü) 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: 10×10 ızgarada iç içe for kaç hücre ziyaret eder?
A) 10
B) 20
C) 100
D) 1000
E) 2
Doğru cevap: C
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 2.1
SORU 2: Dama deseni için tipik ifade hangisidir?
A) satir * sutun
B) (satir + sutun) % 2
C) frameRate()
D) createCanvas
E) keyCode
Doğru cevap: B
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 2.2
SORU 3: sin animasyonda genelde ne sağlar?
A) Dosya indirme
B) −1…+1 arası yumuşak salınım
C) HTML bilgisini
D) APA atıfı
E) CSS seçici
Doğru cevap: B
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 2.3
SORU 4: Pac-Man’de her hayaletin yönünü sırayla hesaplamak hangi programlama fikrine örnektir?
A) Tek bir if ile tüm hayaletleri aynı anda yönetmek
B) Liste / dizideki her eleman için döngüyle aynı tür işlemi tekrarlamak
C) Yalnızca background çağırmak
D) createCanvas boyutunu değiştirmek
E) APA kaynakça yazmak
Doğru cevap: B
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 2.4
SORU 5: «İç İçe Döngüler, Izgara ve Animasyon» 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 (İç İçe Döngüler, Izgara ve Animasyon) 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: hedefCiz(); satırı ne yapar?
A) Fonksiyon tanımı yazar
B) Tanımlı hedefCiz fonksiyonunu çağırır / çalıştırır
C) Tuvali siler
D) Dizi oluşturur
E) FPS ölçer
Doğru cevap: B
Genel açıklama: Parantezli isim fonksiyon çağrısıdır; tanım değildir. İlgili Konu: 4.1. Fonksiyon Kavramı ve Sözdizimi
SORU 2: [Kod okuma] Aşağıdaki kod çalıştırıldığında ekrana yazdırılan değer nedir? Kod 1.
function topla(a, b) { return a + b;} let sonuc = topla(4, 7);// sonuc değişkeninin değeri soruluyorA) "47"
B) 11
C) true
D) undefined
E) 3
Doğru cevap: B
Genel açıklama: return a + b toplamı döndürür; sonuc 11 olur. İlgili Konu: 4.3. return ile Değer Döndürme
SORU 3: return a + b; ile return; arasındaki fark nedir?
A) İkisi de aynıdır
B) Biri değer döndürür, diğeri yalnızca fonksiyondan çıkar
C) Yalnızca setup() içinde kullanılabilirler
D) İkisi de tuval boyutunu değiştirir
E) İkisi de diziyi siler
Doğru cevap: B
Genel açıklama: return değer sonuç iletir; çıplak return erken çıkıştır. İlgili Konu: 4.3. return ile Değer Döndürme
SORU 4: Sketch'te tuval oluşturmak için createCanvas(400, 400) yazılmıştır; ancak fonksiyon adı yanlışlıkla function kurulum() olarak tanımlanmış ve içinde createCanvas çağrılmıştır. p5.js tuvali oluşturmaz. En olası neden nedir?
A) createCanvas yalnızca draw() içinde çalışır
B) p5.js otomatik olarak setup adlı fonksiyonu arar; farklı isim kullanıldığında başlangıç kodu çalışmaz
C) 400 piksel çok küçüktür
D) Dizi tanımlanmamıştır
E) background eksiktir
Doğru cevap: B
Genel açıklama: setup p5.js'in tanıdığı sabit başlangıç adıdır; isim değişince otomatik çağrılmaz. İlgili Konu: 4.1. Fonksiyon Kavramı ve Sözdizimi
SORU 5: Modüler kodda draw() içinde birçok yardımcı fonksiyon çağırmak neden tercih edilir?
A) FPS düşürmek için
B) Görevleri isimlendirilmiş parçalara ayırarak okunabilirliği artırmak için
C) Diziyi silmek için
D) Klavyeyi kapatmak için
E) Tuvali küçültmek için
Doğru cevap: B
Genel açıklama: Modülerlik bakım ve okumayı kolaylaştırır. İlgili Konu: 4.5. Modüler Kod ve Oyun Mimarisi
SORU 6: [Kod okuma] oyunBitti = true iken aşağıdaki mousePressed() çağrıldığında ne olur?
Kod 2.
function mousePressed() { if (oyunBitti) { return; } skor = skor + 1;}A) skor bir artar
B) skor değişmez; fonksiyon erken biter
C) draw() durur
D) Tuval silinir
E) oyunBitti false olur
Doğru cevap: B
Genel açıklama: return sonrası satırlar çalışmaz; skor güncellenmez. İlgili Konu: 4.3. return ile Değer Döndürme
SORU 7: [Kod okuma] Aşağıdaki draw() gövdesinde kaç kez hucreCiz çağrılır? (SATIR = 2, SUTUN = 2)
Kod 3.
function draw() { background(0); for (let satir = 0; satir < SATIR; satir = satir + 1) { for (let sutun = 0; sutun < SUTUN; sutun = sutun + 1) { hucreCiz(sutun * 40, satir * 40, 40, satir, sutun); } }}A) 1
B) 2
C) 4
D) 8
E) 16
Doğru cevap: C
Genel açıklama: 2×2 = 4 hücre; her biri bir fonksiyon çağrısı. İlgili Konu: 4.4. p5.js'te Yardımcı Çizim Fonksiyonları
SORU 8: yeniHedefKonumu() fonksiyonu Daire Tıklama'da hangi görevi toplar?
A) Skoru ekrana yazmak
B) Hedef koordinatlarını rastgele yeniden atamak
C) Tuvali silmek
D) Diziyi dolaşmak
E) while döngüsü koşulunu test etmek
Doğru cevap: B
Genel açıklama: Koordinat ataması tek fonksiyonda toplanır; tekrar azalır. İlgili Konu: 4.5. Modüler Kod ve Oyun Mimarisi
SORU 9: I. Kullanıcı tanımlı fonksiyonlarda camelCase örfi yaygındır.
II. draw yerine Draw yazmak p5.js davranışını değiştirmez.
III. Parametreli fonksiyon aynı kodu farklı verilerle tekrar kullanmayı kolaylaştırır.
Hangileri doğrudur?
A) Yalnız I
B) I ve III
C) Yalnız II
D) II ve III
E) I, II ve III
Doğru cevap: B
Genel açıklama: I ve III doğru. II yanlış; p5.js küçük harf draw arar. İlgili Konu: 4.1–4.3
SORU 10: hucreCiz(x, y, boyut, satir, sutun) içinde (satir + sutun) % 2 kullanılmasının amacı nedir?
A) FPS ölçmek
B) Hücre rengini satır/sütuna göre alternatif yapmak
C) Diziye push yapmak
D) Klavye okumak
E) Fonksiyonu silmek
Doğru cevap: B
Genel açıklama: Dama deseni parametreli hücre fonksiyonunda uygulanır. İlgili Konu: 4.4
Ana Başlık 4 için 10 Soru
SORU 1: FPS neyi ifade eder?
A) Saniyedeki frame sayısı
B) Tuval genişliği
C) Dosya boyutu
D) Renk kanalı
E) Git commit sayısı
Doğru cevap: A
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 4.1
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: Sabit x += 5 hareketi düşük FPS’te genelde nasıl görünür?
A) Daha yavaş ilerler
B) Her zaman aynı gerçek hızda kalır
C) setup’ı siler
D) Rengi değiştirir
E) Klavyeyi kilitler
Doğru cevap: A
Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 4.3
SORU 4: 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 5: «Oyun Döngüsü, FPS ve frameRate» 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: 4.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: 4.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: 4.uygulama
SORU 8: Bu ana başlıkta (Oyun Döngüsü, FPS ve frameRate) 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: 4.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: 4.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: 4.uygulama
Ana Başlık 1 — Açık Uçlu
A1. «for, while ve Döngü Kontrolü» konusundaki merkezi kavramı kendi cümlelerinizle açıklayın ve bunu somut bir mini oyun / sketch örneğine bağlayın.
A2. «for, while ve Döngü Kontrolü» 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. «İç İçe Döngüler, Izgara ve Animasyon» konusundaki merkezi kavramı kendi cümlelerinizle açıklayın ve bunu somut bir mini oyun / sketch örneğine bağlayın.
A2. «İç İçe Döngüler, Izgara ve Animasyon» 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. draw() içinde 50 satırlık tek blok yerine fonksiyonlara ayırmanın bakım açısından faydalarını açıklayın.
Örnek yanıt unsurları: Okunabilirlik, hata ayıklama, yeniden kullanım, ekip çalışması.
Değerlendirme: En az iki gerekçe somut mu?
A2. setup yerine kurulum adlı bir fonksiyon tanımlansa p5.js sketch'inde ne beklenir? Neden?
Örnek yanıt unsurları: p5.js yalnızca belirli adları otomatik çağırır; tuval oluşmaz.
Değerlendirme: Yerleşik olay adı kavramı doğru mu?
A3. XOX tahtası için tahtaCiz ve tasCiz(x, y, tur) gibi iki fonksiyonun sorumluluklarını nasıl bölerdiniz?
Örnek yanıt unsurları: tahta = ızgara/hücre; taş = X veya O sembolü; parametrelerle konum.
Değerlendirme: Görev ayrımı net mi?
Ana Başlık 4 — Açık Uçlu
A1. «Oyun Döngüsü, FPS ve frameRate» konusundaki merkezi kavramı kendi cümlelerinizle açıklayın ve bunu somut bir mini oyun / sketch örneğine bağlayın.
A2. «Oyun Döngüsü, FPS ve frameRate» 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.