Trivia con Open Trivia Database
Este proyecto es un juego de trivia en JavaScript que utiliza la API gratuita de Open Trivia Database para obtener preguntas de opción múltiple de diversas categorías. Los usuarios pueden seleccionar una categoría, responder preguntas y llevar un puntaje acumulado.
Funcionamiento del Proyecto
- Selección de Categoría: Al iniciar, el juego obtiene una lista de categorías desde la API y las muestra en un menú desplegable. El usuario selecciona una categoría y presiona el botón de Iniciar.
- Generación de Pregunta: Cuando se inicia el juego, la trivia envía una solicitud a la API para obtener una pregunta en la categoría elegida. La pregunta incluye una respuesta correcta y varias respuestas incorrectas.
- Mostrar Opciones: Las opciones de respuesta se muestran en botones. Para garantizar una mezcla segura y aleatoria de las respuestas, se utiliza
crypto.getRandomValues
. - Verificación y Puntaje: Cuando el usuario selecciona una respuesta, se comprueba si es correcta. Si lo es, el puntaje aumenta y se muestra un mensaje de éxito; en caso de ser incorrecta, el puntaje se reinicia y se muestra la respuesta correcta.
- Juego Continuo: Tras responder una pregunta, el juego genera una nueva automáticamente después de un breve intervalo, permitiendo al usuario seguir jugando sin interrupciones.
Instalación
Dentro del archivo main.js
se encuentra toda la configuración básica del proyecto. Todas las categorías disponibles en la API están incluidas y, además, puedes personalizar el número de preguntas y el nivel de dificultad en la URL base:
const url = `https://opentdb.com/api.php?amount=10&category=9&difficulty=easy&type=multiple`;
Construido con
- HTML
- CSS
- JavaScript
Uso
- Clona el repositorio en tu computadora.
git clone https://github.com/leonxrdon/trivia-game
- Ejecuta el archivo
index.html
en tu navegador.
Luego:
- Selecciona una categoría y presiona el botón de Iniciar para comenzar a jugar.
- Al final de cada pregunta, en la parte inferior de la pantalla se mostrará el puntaje obtenido.