Условия задачи:
Викторина. В этой задаче по программированию следует создать простую викторину для двух игроков. Программа будет работать следующим образом.
• Начиная с игрока 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("Ничья!")