quarta-feira, 29 de janeiro de 2025

#1 Quiz de Perguntas e Respostas

Um jogo de quiz com perguntas de múltipla escolha sobre um tema específico (como geografia, cinema ou ciências). O jogador acumula pontos conforme acerta as respostas.

 O código será modular, fácil de expandir e seguirá boas práticas de programação. Vou incluir funcionalidades como:

  1. Perguntas de múltipla escolha: Cada pergunta terá 4 opções.

  2. Pontuação: O jogador acumula pontos conforme acerta as respostas.

  3. Tema específico: O quiz será sobre geografia, mas você pode facilmente adaptar para outros temas.

  4. Feedback: O jogador recebe feedback imediato sobre se acertou ou errou a pergunta.

  5. Finalização: No final, o jogador recebe a pontuação total.


Aqui está o código:


python
Copy
import json
import os

class Quiz:
    def __init__(self, questions_file):
        self.questions = self.load_questions(questions_file)
        self.score = 0

    def load_questions(self, questions_file):
        """Carrega as perguntas de um arquivo JSON."""
        if not os.path.exists(questions_file):
            raise FileNotFoundError(f"Arquivo {questions_file} não encontrado.")
        
        with open(questions_file, 'r', encoding='utf-8') as file:
            questions = json.load(file)
        
        return questions

    def display_question(self, question):
        """Exibe a pergunta e as opções de resposta."""
        print(f"\n{question['pergunta']}")
        for idx, option in enumerate(question['opcoes'], start=1):
            print(f"{idx}. {option}")
        print()

    def get_user_answer(self):
        """Obtém a resposta do usuário."""
        while True:
            try:
                choice = int(input("Escolha a opção correta (1-4): "))
                if 1 <= choice <= 4:
                    return choice
                else:
                    print("Por favor, escolha um número entre 1 e 4.")
            except ValueError:
                print("Entrada inválida. Por favor, insira um número.")

    def check_answer(self, question, user_answer):
        """Verifica se a resposta do usuário está correta."""
        correct_answer = question['resposta_correta']
        if user_answer == correct_answer:
            print("Resposta correta! 🎉")
            self.score += 1
        else:
            print(f"Resposta incorreta. A resposta correta era {correct_answer}. 😢")

    def run_quiz(self):
        """Executa o quiz."""
        print("Bem-vindo ao Quiz de Geografia! 🌍")
        print("Você receberá uma série de perguntas de múltipla escolha. Boa sorte!\n")

        for question in self.questions:
            self.display_question(question)
            user_answer = self.get_user_answer()
            self.check_answer(question, user_answer)

        print(f"\nQuiz finalizado! Sua pontuação final é {self.score}/{len(self.questions)}. 🏆")

if __name__ == "__main__":
    # Arquivo JSON contendo as perguntas e respostas
    questions_file = "perguntas_geografia.json"
    
    try:
        quiz = Quiz(questions_file)
        quiz.run_quiz()
    except FileNotFoundError as e:
        print(e)


Estrutura do Arquivo JSON (perguntas_geografia.json):


O arquivo JSON deve conter as perguntas, opções de resposta e a resposta correta. Aqui está um exemplo:


json
Copy
[
    {
        "pergunta": "Qual é a capital da França?",
        "opcoes": ["Berlim", "Madri", "Paris", "Roma"],
        "resposta_correta": 3
    },
    {
        "pergunta": "Qual é o maior oceano do mundo?",
        "opcoes": ["Atlântico", "Índico", "Ártico", "Pacífico"],
        "resposta_correta": 4
    },
    {
        "pergunta": "Qual país é conhecido como a Terra do Sol Nascente?",
        "opcoes": ["China", "Japão", "Coreia do Sul", "Tailândia"],
        "resposta_correta": 2
    }
]


Como Funciona:


  1. Carregamento das Perguntas: As perguntas são carregadas de um arquivo JSON, o que facilita a adição ou remoção de perguntas sem alterar o código.

  2. Exibição das Perguntas: Cada pergunta é exibida com suas opções de resposta.

  3. Resposta do Usuário: O usuário escolhe uma opção, e o programa verifica se a resposta está correta.

  4. Pontuação: A pontuação é acumulada conforme o usuário acerta as respostas.

  5. Finalização: No final, a pontuação total é exibida.

Como Executar:

  1. Salve o código Python em um arquivo, por exemplo, quiz.py.

  2. Crie o arquivo JSON com as perguntas, por exemplo, perguntas_geografia.json.

  3. Execute o script Python: python quiz.py.


Expansão:


  • Adicionar mais temas: Basta criar novos arquivos JSON com perguntas de outros temas e carregá-los no código.

  • Dificuldade variável: Você pode adicionar níveis de dificuldade e carregar perguntas diferentes com base na escolha do usuário.

  • Interface gráfica: Você pode integrar o quiz com uma interface gráfica usando bibliotecas como tkinter ou PyQt.

Espero que isso atenda às suas expectativas!

Nenhum comentário:

Postar um comentário

#17 Conclusão do Projeto Quiz em Python e Próximos Passos

Descrição:   Concluímos o projeto e discutimos como você pode continuar aprendendo e expandindo o quiz. Conteúdo: Reforçamos a importância d...