5 Mart 2025 Çarşamba

Kotlinde Seviyeli Bilgi Yarışması Oyunu Örneği

 Kotlin ile basit bir seviyeli bilgi yarışması oyunu örneği oluşturabiliriz. Bu örnekte, kullanıcıya farklı seviyelerde sorular sorulacak ve her seviyede doğru cevaplar verildikçe bir sonraki seviyeye geçilecek. Her seviyede sorular zorlaşacak ve kullanıcının puanı artacak.

İşte basit bir Kotlin kodu örneği:

kotlin
Copy
import java.util.Scanner

data class Question(val questionText: String, val options: List<String>, val correctAnswer: Int)

fun main() {
    val scanner = Scanner(System.`in`)
    var score = 0
    val levels = listOf(
        listOf(
            Question("Türkiye'nin başkenti neresidir?", listOf("İstanbul", "Ankara", "İzmir", "Bursa"), 1),
            Question("Hangi gezegen Güneş Sistemi'ndeki en büyük gezegendir?", listOf("Dünya", "Mars", "Jüpiter", "Satürn"), 2)
        ),
        listOf(
            Question("Hangi elementin sembolü 'O'dur?", listOf("Altın", "Oksijen", "Gümüş", "Demir"), 1),
            Question("Hangi yıl Ay'a ilk kez insan ayak bastı?", listOf("1965", "1969", "1971", "1975"), 1)
        ),
        listOf(
            Question("Hangi ülke Eiffel Kulesi'ne ev sahipliği yapar?", listOf("İtalya", "Fransa", "Almanya", "İspanya"), 1),
            Question("Hangi yazar '1984' adlı romanı yazmıştır?", listOf("George Orwell", "J.K. Rowling", "Charles Dickens", "Mark Twain"), 0)
        )
    )

    println("Bilgi Yarışmasına Hoş Geldiniz!")
    println("Her seviyede 2 soru bulunmaktadır. Doğru cevaplarınız puanınızı artıracak!")

    for ((levelIndex, levelQuestions) in levels.withIndex()) {
        println("\nSeviye ${levelIndex + 1}")
        for ((questionIndex, question) in levelQuestions.withIndex()) {
            println("\nSoru ${questionIndex + 1}: ${question.questionText}")
            question.options.forEachIndexed { index, option ->
                println("${index + 1}. $option")
            }
            print("Cevabınız (1-4): ")
            val userAnswer = scanner.nextInt() - 1

            if (userAnswer == question.correctAnswer) {
                println("Doğru cevap!")
                score += 10
            } else {
                println("Yanlış cevap! Doğru cevap: ${question.options[question.correctAnswer]}")
            }
        }
    }

    println("\nOyun bitti! Toplam puanınız: $score")
}

Açıklama:

  1. Question Sınıfı: Her soru, soru metni, seçenekler ve doğru cevabın indeksini içeren bir Question sınıfı ile temsil edilir.

  2. Seviyeler: Sorular, her seviyede iki soru olacak şekilde gruplandırılmıştır. Her seviyede sorular zorlaşır.

  3. Oyun Döngüsü: Kullanıcıya her seviyede sorular sorulur ve doğru cevaplar verildikçe puan artar.

  4. Puanlama: Her doğru cevap için 10 puan eklenir.

Örnek Çıktı:

Copy
Bilgi Yarışmasına Hoş Geldiniz!
Her seviyede 2 soru bulunmaktadır. Doğru cevaplarınız puanınızı artıracak!

Seviye 1

Soru 1: Türkiye'nin başkenti neresidir?
1. İstanbul
2. Ankara
3. İzmir
4. Bursa
Cevabınız (1-4): 2
Doğru cevap!

Soru 2: Hangi gezegen Güneş Sistemi'ndeki en büyük gezegendir?
1. Dünya
2. Mars
3. Jüpiter
4. Satürn
Cevabınız (1-4): 3
Doğru cevap!

Seviye 2

Soru 1: Hangi elementin sembolü 'O'dur?
1. Altın
2. Oksijen
3. Gümüş
4. Demir
Cevabınız (1-4): 2
Doğru cevap!

Soru 2: Hangi yıl Ay'a ilk kez insan ayak bastı?
1. 1965
2. 1969
3. 1971
4. 1975
Cevabınız (1-4): 2
Doğru cevap!

Seviye 3

Soru 1: Hangi ülke Eiffel Kulesi'ne ev sahipliği yapar?
1. İtalya
2. Fransa
3. Almanya
4. İspanya
Cevabınız (1-4): 2
Doğru cevap!

Soru 2: Hangi yazar '1984' adlı romanı yazmıştır?
1. George Orwell
2. J.K. Rowling
3. Charles Dickens
4. Mark Twain
Cevabınız (1-4): 1
Doğru cevap!

Oyun bitti! Toplam puanınız: 60

Bu örnek, Kotlin ile basit bir bilgi yarışması oyunu oluşturmanın temelini gösterir. Daha gelişmiş özellikler ekleyerek oyunu daha interaktif hale getirebilirsiniz.

Hiç yorum yok:

Yorum Gönder