Skip to content

Commit

Permalink
Eliminando codigo duplicado en Bateria
Browse files Browse the repository at this point in the history
  • Loading branch information
iyanfdezz committed Apr 7, 2024
1 parent 5262bbe commit e78a311
Showing 1 changed file with 37 additions and 40 deletions.
77 changes: 37 additions & 40 deletions webapp/src/pages/Bateria/Bateria.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ import axios from 'axios';
import { useTranslation } from "react-i18next";

const JuegoPreguntas = () => {
const URL = process.env.REACT_APP_API_ENDPOINT || "http://localhost:8000"
const URL = process.env.REACT_APP_API_ENDPOINT || "http://localhost:8000";
const TIME = localStorage.getItem("bateriaTime");

const { t, i18n } = useTranslation();
const navigate = useNavigate();

const [isLoading, setIsLoading] = useState(true);
const [indicePregunta, setIndicePregunta] = useState(0);
Expand All @@ -20,14 +21,35 @@ const JuegoPreguntas = () => {
const [preguntas, setPreguntas] = useState([]);
const [preguntaActual, setPreguntaActual] = useState(null);
const [progressPercent, setProgressPercent] = useState(100);
const navigate = useNavigate();

//Used for user stats
const [preguntasCorrectas, setPreguntasCorrectas] = useState(0);
const [preguntasFalladas, setPreguntasFalladas] = useState(0);
const [tiempoMedio, setTiempoMedio] = useState(0);
//Used for user stats
const [preguntasCorrectas, setPreguntasCorrectas] = useState(0);
const [preguntasFalladas, setPreguntasFalladas] = useState(0);
const [tiempoMedio, setTiempoMedio] = useState(0);

useEffect(() => {
fetchQuestions();
}, []);

useEffect(() => {
handleTime();
}, [tiempoRestante, preguntasCorrectas, preguntasFalladas]);

useEffect(() => {
if (juegoTerminado && tiempoMedio !== 0) {
guardarPartida();
}
}, [juegoTerminado, tiempoMedio]);

useEffect(() => {
setProgressPercent(tiempoRestante / TIME * 100);
const timer = setInterval(() => {
setTiempoRestante(prevTiempo => (prevTiempo <= 0 ? 0 : prevTiempo - 0.01));
}, 10);
return () => clearInterval(timer);
}, [tiempoRestante]);

const fetchQuestions = () => {
fetch(URL + "/questions", {
method: "POST",
headers: {
Expand All @@ -51,36 +73,24 @@ const JuegoPreguntas = () => {
console.error("Error al obtener las preguntas:", error);
navigate("/home?error=1");
});
// eslint-disable-next-line
}, []);
};

useEffect(() => {
const handleTime = () => {
if (tiempoRestante === 0) {
setJuegoTerminado(true);
if(preguntasCorrectas+preguntasFalladas>0){
const preguntasTotales=preguntasCorrectas+preguntasFalladas;
const tMedio=TIME/preguntasTotales;
if(preguntasCorrectas + preguntasFalladas > 0) {
const preguntasTotales = preguntasCorrectas + preguntasFalladas;
const tMedio = TIME / preguntasTotales;
setTiempoMedio(tMedio);
}
}
const timer = setInterval(() => {
setTiempoRestante((prevTiempo) => (prevTiempo <= 0 ? 0 : prevTiempo - 1));
}, 1000);
return () => clearInterval(timer);
// eslint-disable-next-line
}, [tiempoRestante, preguntasCorrectas, preguntasFalladas]);

useEffect(() => {
if (juegoTerminado && tiempoMedio !== 0) {
guardarPartida();
}
// eslint-disable-next-line
}, [juegoTerminado, tiempoMedio]);


};

const guardarPartida = async () => {

const username = localStorage.getItem("username");
const newGame = {
username: username,
Expand All @@ -105,25 +115,13 @@ const JuegoPreguntas = () => {
} catch (error) {
console.error("Error al guardar el juego:", error);
}
}

useEffect(() => {
setProgressPercent(tiempoRestante / TIME * 100);

const timer = setInterval(() => {
setTiempoRestante(prevTiempo => (prevTiempo <= 0 ? 0 : prevTiempo - 0.01));
}, 10);

return () => clearInterval(timer);
// eslint-disable-next-line
}, [tiempoRestante]);
};

const handleSiguientePregunta = async (respuesta) => {
if (respuesta === preguntaActual.correcta) {
setPuntuacion(puntuacion + 1);
setPreguntasCorrectas(preguntasCorrectas+1);
}
else{
} else {
setPreguntasFalladas(preguntasFalladas+1);
}
if (indicePregunta + 1 < preguntas.length) {
Expand All @@ -135,7 +133,6 @@ const JuegoPreguntas = () => {
};

const handleRepetirJuego = () => {
// Reiniciar el estado para repetir el juego
setIndicePregunta(0);
setPuntuacion(0);
setTiempoRestante(180);
Expand Down Expand Up @@ -216,4 +213,4 @@ const JuegoPreguntas = () => {
);
};

export default JuegoPreguntas;
export default JuegoPreguntas;

0 comments on commit e78a311

Please sign in to comment.