CodeBlanks Logo Icon CodeBlanks

Quiz modeli

Question modelini ve state'i tasarlarsın.

Quiz modeli

Bir quiz uygulaması için önce veri modelini tasarlarsın. Her soru bir Question nesnesidir: id (benzersiz numara), question (soru metni), options (seçenekler dizisi), answer (doğru seçeneğin indeksi). Bu alanlar bir soruyu tam olarak tanımlar.

Örnek: { id: 1, question: "Türkiye'nin başkenti?", options: ["İstanbul", "Ankara", "İzmir"], answer: 1 }. Burada doğru cevap "Ankara" olduğundan answer 1'dir (indeks 0'dan başlar). Bir quiz, bu nesnelerin bir dizisidir: questions = [...]. Bu yapı, soruları render etmeyi, doğru cevabı kontrol etmeyi ve skoru hesaplamayı kolaylaştırır. Tasarım sade tutulmakla birlikte gerçek bir quiz uygulamasının temelini taşır.

Uygulama Soru dizisi tanımla

Bir questions sabiti tanımla. İçinde 2 soru olsun. Her soru: id, question, options (3 seçenek) ve answer alanlarını taşısın. Birinci soru: { id: 1, question: "Türkiye'nin başkenti?", options: ["İstanbul", "Ankara", "İzmir"], answer: 1 }. İkinci soru: { id: 2, question: "2 + 2 kaçtır?", options: ["3", "4", "5"], answer: 1 }.

Başlangıç kodu

App.js
// questions sabitini tanımla
// 2 sorudan oluşan bir dizi olsun
// her soru id, question, options ve answer taşısın

Örnek çözüm

App.js
const questions = [
  { id: 1, question: "Türkiye'nin başkenti?", options: ["İstanbul", "Ankara", "İzmir"], answer: 1 },
  { id: 2, question: "2 + 2 kaçtır?", options: ["3", "4", "5"], answer: 1 }
];

Modelin önemi

Soru modelini tasarlamak, uygulamanın geri kalanını kolaylaştırır. Sorular bir dizi olarak elimizdeyse; bir sonraki soruya geçmek için indeksi bir artırırız, doğru cevabı kontrol etmek için question.answer'ı kullanırız, skoru hesaplamak için doğru sayısını sayarız.

Bu model, gerçek bir API'den de kolayca yüklenebilir. Sunucu JSON dizi dönerse response.json() ile aynı yapıyı elde ederiz. Sonraki derslerde bu modeli kullanarak soruları API'den yükleyecek, bir quiz akışı yazacak ve skoru hesaplayacağız. Bu derste attığımız temel, tüm projenin omurgasıdır. Temiz veri modeli, temiz uygulama demektir.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir Question nesnesinin answer alanı neyi tutar?

App.js
{ id: 1, question: "...", options: ["...", "..."], answer: 1 }
  • Soru metnini
  • Doğru seçeneğin indeksini Doğru cevap
  • Soru sayısını
  • Soru kimliğini

Açıklama: answer, doğru seçeneğin options içindeki indeksidir.

2 Question nesnesini tanımla

Soru
const question = { id: 1, question: "Başkent?", options: ["İstanbul", "Ankara"], ____: 1 };
Cevap
const question = { id: 1, question: "Başkent?", options: ["İstanbul", "Ankara"], answer: 1 };

Açıklama: answer doğru seçeneğin indeksini tutar.

3 Alanı rolüne eşle

Kavram Anlamı
id Benzersiz numara
question Soru metni
options Seçenekler dizisi
answer Doğru indeks

Orta seviye bölümündeki tüm dersler