Takip Edin

C#

C# Console Quiz Uygulaması

C# Console Quiz Uygulaması - Öne Çıkan Görsel

Bu bölümde, kullanıcıya 5 adet soru sorulacak ve 100 puan üzerinden puanlama yapılacaktır. Kullanıcı, soruları cevapladıktan sonra aldığı puan console’a yazdırılacaktır.

class Question
    {
        public Question(string text, string[] choices, string answer)
        {
            this.Text = text;
            this.Choices = choices;
            this.Answer = answer;   
        }
        public string Text { get; set; }
        public string[] Choices { get; set; }
        public string Answer { get; set; }
        public bool checkAnswer(string answer)
        {
            return this.Answer.ToLower() == answer.ToLower();
        }
    }
    
    class Quiz
    {
        public Quiz(Question[] questions)
        {
            this.Questions = questions;
            this.QuestionIndex = 0;
            this.Score = 0;
        }
        private Question[] Questions { get; set; }
        private int QuestionIndex { get; set; }
        private int Score { get; set; }
        private Question GetQuestion()
        {
            return this.Questions[this.QuestionIndex];
        }
        public void DisplayQuestion()
        {
            var question = this.GetQuestion();
            this.DisplayProgress();
            Console.WriteLine($"Soru: {this.QuestionIndex+1}: {question.Text}");

            foreach (var c in question.Choices)
            {
                Console.WriteLine($"-{c}");
            }

            Console.Write("Cevap: ");
            var cevap = Console.ReadLine();
            this.Guess(cevap);
        }
        private void Guess(string answer) 
        {
            var question = this.GetQuestion();
            if(question.checkAnswer(answer))
                this.Score++;
            this.QuestionIndex++;
            if(this.Questions.Length == this.QuestionIndex) // Question'ın index numarası Question sayısına ulaştığında parantez içerisindeki ifade false olur.
            {
                this.DisplayScore();
            }
            else
            {               
                this.DisplayQuestion();
            }           
        }
        private void DisplayScore()
        {
            var skor = this.Score*=20;            
            Console.WriteLine($"Score: {skor}");
        }
        private void DisplayProgress()
        {
            int totalQuestion = this.Questions.Length;
            int questionNumber = this.QuestionIndex + 1;

            if(totalQuestion >= questionNumber)
                Console.WriteLine($"Question: {questionNumber} of {totalQuestion}");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var q1 = new Question("Fatih Sultan Mehmet’in babası kimdir?", new string[]{"2. Murat","Yıldırım Beyazıt","1. Mehmet"}, "2. Murat");
            var q2 = new Question("Magna Carta hangi ülkenin kralıyla yapılmış bir sözleşmedir?", new string[]{"İngiltere","İspanya","Fransa"}, "İngiltere");
            var q3 = new Question("Galatasaray hangi yıl UEFA kupasını almıştır?", new string[]{"1998","1999","2000"}, "2000");
            var q4 = new Question("Hangi ülke Asya kıtasındadır?", new string[]{"Peru","Singapur","Madagaskar"}, "Singapur");
            var q5 = new Question(" Tarihçilerin Kutbu olarak bilinen dünyaca ünlü tarihçimiz kimdir?", new string[]{"Ekmeleddin İhsanoğlu","Halil İnalcık","İlber Ortaylı"}, "Halil İnalcık");           

             var questions = new Question[] {q1, q2, q3, q4, q5};
             var quiz = new Quiz(questions);

            quiz.DisplayQuestion();

        }
    }
Devamını oku

Popüler

error: Content is protected !!