Условия задачи:

 

Викторина. В этой задаче по программированию следует создать простую викторину для двух игроков. Программа будет работать следующим образом.
• Начиная с игрока 1, каждый игрок по очереди отвечает на 5 вопросов викторины. (Должно быть в общей сложности 10 вопросов.) При выводе вопроса на экран также выводятся 4 возможных ответа. Только один из этих ответов является правильным, и если игрок выбирает правильный ответ, то он зарабатывает очко.
• После того как были выбраны ответы на все вопросы, программа показывает количе­ство очков, заработанное каждым игроком, и объявляет игрока с наибольшим количе­ством очков победителем. 
Для создания этой программы напишите класс Question (Вопрос), который будет содер­жать данные о вопросе викторины. Класс Question должен иметь атрибуты для приве­денных ниже данных:
•вопрос викторины;
•возможный ответ 1;
•возможный ответ 2;
•возможный ответ 3;
•возможный ответ 4;
•номер правильного ответа (1, 2, 3 или 4).
Класс Question также должен  иметь соответствующий метод ini t( ) , методы-получатели и методы-мутаторы.
Программа должна содержать список или словарь с 10 объектами Question, один для каждого вопроса викторины. Составьте для объектов собственные вопросы викторины по теме или темам по вашему выбору.

 

Решение задачи:

class Question:
    def __init__(self, question, option1, option2, option3, option4, correct_answer):
        self.__question = question
        self.__option1 = option1
        self.__option2 = option2
        self.__option3 = option3
        self.__option4 = option4
        self.__correct_answer = correct_answer

    # Методы-получатели (геттеры)
    def get_question(self):
        return self.__question

    def get_option1(self):
        return self.__option1

    def get_option2(self):
        return self.__option2

    def get_option3(self):
        return self.__option3

    def get_option4(self):
        return self.__option4

    def get_correct_answer(self):
        return self.__correct_answer

    # Методы-мутаторы (сеттеры)
    def set_question(self, question):
        self.__question = question

    def set_option1(self, option1):
        self.__option1 = option1

    def set_option2(self, option2):
        self.__option2 = option2

    def set_option3(self, option3):
        self.__option3 = option3

    def set_option4(self, option4):
        self.__option4 = option4

    def set_correct_answer(self, correct_answer):
        self.__correct_answer = correct_answer


def main():
    # Создаем список вопросов
    questions = [
        Question("Какая столица Франции?", "Лондон", "Берлин", "Париж", "Мадрид", 3),
        Question("Сколько планет в Солнечной системе?", "7", "8", "9", "10", 2),
        Question("Какой язык программирования мы используем?", "Java", "C++", "Python", "JavaScript", 3),
        Question("Кто написал 'Войну и мир'?", "Достоевский", "Толстой", "Пушкин", "Гоголь", 2),
        Question("Какой газ преобладает в атмосфере Земли?", "Кислород", "Азот", "Углекислый газ", "Водород", 2),
        Question("Какое самое глубокое озеро в мире?", "Виктория", "Танганьика", "Байкал", "Каспийское море", 3),
        Question("Кто открыл Америку?", "Магеллан", "Колумб", "Васко да Гама", "Джеймс Кук", 2),
        Question("Какой год был основан Google?", "1996", "1998", "2000", "2002", 2),
        Question("Какой элемент обозначается символом 'O'?", "Золото", "Кислород", "Олово", "Осмий", 2),
        Question("Кто нарисовал 'Мону Лизу'?", "Микеланджело", "Рафаэль", "Да Винчи", "Донателло", 3)
    ]

    player1_score = 0
    player2_score = 0

    print("Добро пожаловать в викторину!")
    print("Игрок 1 начинает первым.\n")

    for i in range(10):
        current_player = "Игрок 1" if i % 2 == 0 else "Игрок 2"
        print(f"\nХод {current_player}:")

        question = questions[i]
        print(f"\nВопрос {i + 1}: {question.get_question()}")
        print(f"1. {question.get_option1()}")
        print(f"2. {question.get_option2()}")
        print(f"3. {question.get_option3()}")
        print(f"4. {question.get_option4()}")

        while True:
            try:
                answer = int(input("Ваш ответ (1-4): "))
                if 1 <= answer <= 4:
                    break
                else:
                    print("Пожалуйста, введите число от 1 до 4.")
            except ValueError:
                print("Пожалуйста, введите число.")

        if answer == question.get_correct_answer():
            print("Правильно!\n")
            if current_player == "Игрок 1":
                player1_score += 1
            else:
                player2_score += 1
        else:
            print(f"Неправильно! Правильный ответ: {question.get_correct_answer()}\n")

    print("\nРезультаты:")
    print(f"Игрок 1: {player1_score} очков")
    print(f"Игрок 2: {player2_score} очков")

    if player1_score > player2_score:
        print("Игрок 1 победил!")
    elif player2_score > player1_score:
        print("Игрок 2 победил!")
    else:
        print("Ничья!")