HTML ile Mini Quiz / Kart Oyunu Tasarlamak 🃏 – Kodlarla Eğlence

HTML ile Mini Quiz / Kart Oyunu Tasarlamak 🃏 – Kodlarla Eğlence

Selam dijital kaşif! 🌍
Bugün klavyeni ve fareni kullanarak eğlenceli, interaktif bir mini quiz tasarlayacağız. Hedefimiz hem öğrenmek hem de eğlenmek. Doğru/Yanlış veya çoktan seçmeli sorularla HTML dünyasına adım atacağız ve <form> ile <input> sihirli kombinasyonlarını keşfedeceğiz.

Hazırsanız, kartlar dağıtılıyor… 🎴


1. Quiz Sayfasının Temel Yapısı – HTML ile Başlangıç

HTML, quiz’in iskeleti. Form olmadan hiçbir kullanıcı etkileşimi yok!
İşte temel bir yapı:

&lt;!DOCTYPE html>
&lt;html lang="tr">
&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>Mini Quiz Oyunu&lt;/title>
  &lt;style>
    body { font-family: Arial, sans-serif; background: #fdf6e3; padding: 20px; }
    h1 { text-align: center; color: #1e90ff; }
    form h2 { background: #f0f8ff; padding: 10px; border-radius: 10px; box-shadow: 2px 2px 5px gray; }
    button { background-color: #1e90ff; color: white; padding: 10px 20px; border-radius: 5px; cursor: pointer; margin-top: 10px; }
    button:hover { background-color: #3742fa; }
    .result { margin-top: 20px; font-size: 1.2em; font-weight: bold; }
  &lt;/style>
&lt;/head>
&lt;body>
  &lt;h1>Bilgi Kartı Quiz 🎲&lt;/h1>

  &lt;form id="quizForm">
    &lt;h2>Soru 1: HTML bir programlama dili midir?&lt;/h2>
    &lt;input type="radio" id="q1-true" name="q1" value="true">
    &lt;label for="q1-true">Doğru&lt;/label>&lt;br>
    &lt;input type="radio" id="q1-false" name="q1" value="false">
    &lt;label for="q1-false">Yanlış&lt;/label>&lt;br>&lt;br>

    &lt;h2>Soru 2: Hangisi HTML etiketi değildir?&lt;/h2>
    &lt;input type="radio" id="q2-div" name="q2" value="div">
    &lt;label for="q2-div">&amp;lt;div&amp;gt;&lt;/label>&lt;br>
    &lt;input type="radio" id="q2-span" name="q2" value="span">
    &lt;label for="q2-span">&amp;lt;span&amp;gt;&lt;/label>&lt;br>
    &lt;input type="radio" id="q2-bold" name="q2" value="bold">
    &lt;label for="q2-bold">&amp;lt;bold&amp;gt;&lt;/label>&lt;br>&lt;br>

    &lt;button type="submit">Cevapları Gönder 🎯&lt;/button>
  &lt;/form>

  &lt;div id="result" class="result">&lt;/div>
&lt;/body>
&lt;/html>

🔹 İpucu:

  • <form> quiz’in ruhu; cevapları toplar ve işleme gönderir.
  • <input type="radio"> kullanıcıya tek seçim hakkı verir.
  • <label> ile tıklanabilir alanı büyütüp erişilebilirliği artırıyoruz.

2. Kullanıcı Etkileşimi: Formu Canlandırmak

Formun gönderilmesi sadece HTML ile yetinmez; JavaScript ile interaktif hâle getiriyoruz:

&lt;script>
const form = document.getElementById('quizForm');
const resultDiv = document.getElementById('result');

form.addEventListener('submit', function(e) {
  e.preventDefault(); // Sayfanın yenilenmesini durdur

  let score = 0;

  // Kullanıcı cevaplarını al
  const q1 = form.q1.value;
  const q2 = form.q2.value;

  // Doğru cevapları kontrol et
  if(q1 === 'false') score++; // HTML bir programlama dili değildir
  if(q2 === 'bold') score++;  // &lt;bold> HTML etiketi değildir

  // Sonucu göster
  resultDiv.innerHTML = `&lt;h2>Skorunuz: ${score}/2 🎉&lt;/h2>`;

  // Mizahi bir dokunuş
  if(score === 2){
    resultDiv.innerHTML += "&lt;p>Harika! Sen bir HTML kart sihirbazısın! 🧙‍♂️&lt;/p>";
  } else if(score === 1){
    resultDiv.innerHTML += "&lt;p>İyi iş! Biraz daha pratikle uzman olursun. 😉&lt;/p>";
  } else {
    resultDiv.innerHTML += "&lt;p>Hmm… Daha çok çalışmalısın! 💡&lt;/p>";
  }
});
&lt;/script>

🔹 İpuçları:

  • e.preventDefault() sayfanın yenilenmesini engeller ve kullanıcı deneyimini bozmadan sonucu gösterir.
  • Kullanıcıya puanı ve küçük mesajlar göstererek interaktif ve eğlenceli bir deneyim yaratıyoruz.

3. Çoktan Seçmeli ve Doğru/Yanlış Sorularla Kartlar

Quiz’in daha eğlenceli hâle gelmesi için soruları kart gibi tasarlayabiliriz.

&lt;h2>Soru 3: Hangi etiket içerik bölümlerini gruplar?&lt;/h2>
&lt;input type="radio" id="q3-div" name="q3" value="div">
&lt;label for="q3-div">&amp;lt;div&amp;gt;&lt;/label>&lt;br>
&lt;input type="radio" id="q3-section" name="q3" value="section">
&lt;label for="q3-section">&amp;lt;section&amp;gt;&lt;/label>&lt;br>
&lt;input type="radio" id="q3-article" name="q3" value="article">
&lt;label for="q3-article">&amp;lt;article&amp;gt;&lt;/label>&lt;br>

Kart tarzı ipucu:

  • CSS ile box-shadow, border-radius ve padding kullanarak her soruyu bir kart gibi göster.
  • Hover efekti ile kartlar açılır gibi animasyon ekle, kullanıcıyı eğlendir.

4. CSS ile Görsellik ve Eğlence

form h2 {
  background: linear-gradient(135deg, #fdfbfb, #ebedee);
  padding: 15px;
  border-radius: 12px;
  margin-bottom: 10px;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.2);
  transition: transform 0.2s;
}
form h2:hover {
  transform: scale(1.02);
  box-shadow: 4px 4px 15px rgba(0,0,0,0.3);
}

  • Hover efekti ile kullanıcı soruya yaklaşınca kart “canlanır”.
  • Renkli gradient ile sayfa daha çekici olur.
  • Box-shadow ile kartlara derinlik katılır.

5. Bonus: Zamanlayıcı ile Mini Challenge ⏱️

&lt;p id="timer">Kalan süre: 30 saniye&lt;/p>

&lt;script>
let timeLeft = 30;
const timer = document.getElementById('timer');

const countdown = setInterval(() => {
  if(timeLeft &lt;= 0) {
    clearInterval(countdown);
    timer.innerHTML = "Süre doldu! ⏳";
  } else {
    timer.innerHTML = `Kalan süre: ${timeLeft} saniye`;
  }
  timeLeft -= 1;
}, 1000);
&lt;/script>

🎯 Kullanıcı soruları hızlı cevaplamaya çalışacak ve eğlence katlanacak!


6. Öğretici İpuçları ve Sıradışı Fikirler

  • <form> ile veri topla, JS ile anında geri bildirim ver.
  • Hover ve animasyon efektleri ile kartları canlandır.
  • Emoji ve mizah ekle; kullanıcı sıkılmasın.
  • <details> ve <summary> kullanarak gizli ipuçları ver.
  • CSS ile her kartı farklı renk ve şekillerle kişiselleştir.
  • Skor sonrası mesajlar ve animasyonlarla kullanıcıyı motive et.

7. Özet

  1. HTML: Quiz’in iskeleti (<form>, <input>, <label>).
  2. CSS: Kartları stilize et, hover ve gölge ile eğlence kat.
  3. JavaScript: Kullanıcı etkileşimi, puanlama ve geri bildirim.
  4. Pratik ipuçları: Hover efektleri, renkli kartlar, gizli ipuçları ve animasyonlar.
  5. Bonus fikir: Zamanlayıcı, emoji kullanımı, mini oyun hissi.

🎉 Sonuç: Bu mini quiz, hem öğretici hem interaktif, hem de eğlenceli bir HTML projesi oldu. Kullanıcılar hem öğreniyor hem eğleniyor!

Comments

No comments yet. Why don’t you start the discussion?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir