From 5bdb522d533e238f390622074fc1da393b852c31 Mon Sep 17 00:00:00 2001 From: "andres.sanjuan" Date: Thu, 30 Jul 2026 14:38:25 -0600 Subject: [PATCH] feat: Ajustes tecnicos para ruleta y posicion de puntaje --- src/App.tsx | 5 ++++- src/components/game/Ruleta/RuletaSVG.tsx | 2 +- src/components/screens/Result.tsx | 22 +++++++++++++++++++++- src/hooks/useRuleta.ts | 5 +++-- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 1ae8fad..7b31d71 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -13,6 +13,7 @@ type Screen = 'intro' | 'cover' | 'game' | 'result' interface ResultState { aprobado: boolean sinIntentos: boolean + correctas: number } export default function App() { @@ -23,6 +24,7 @@ export default function App() { const [resultState, setResultState] = useState({ aprobado: false, sinIntentos: intentosAgotados(), + correctas: 0, }) function handleIntroContinue() { @@ -38,7 +40,7 @@ export default function App() { setScore(Math.round((correctas / 12) * 100), 100, 0) setLessonStatus(aprobado ? 'passed' : 'failed') finishSCORM() - setResultState({ aprobado, sinIntentos: intentosAgotados() }) + setResultState({ aprobado, sinIntentos: intentosAgotados(), correctas }) setScreen('result') } @@ -108,6 +110,7 @@ export default function App() { diff --git a/src/components/game/Ruleta/RuletaSVG.tsx b/src/components/game/Ruleta/RuletaSVG.tsx index a7f596f..063d9c3 100644 --- a/src/components/game/Ruleta/RuletaSVG.tsx +++ b/src/components/game/Ruleta/RuletaSVG.tsx @@ -72,7 +72,7 @@ export default function RuletaSVG({ categorias, rotacion, isSpinning, onClick }:
{/* ─── Puntero ─── */} -
+
Indicador void } -export default function Result(_props: ResultProps) { +export default function Result({ correctas }: ResultProps) { return (
{/* ─── Columna izquierda 50% ─── */} @@ -57,6 +58,25 @@ export default function Result(_props: ResultProps) {

+ + {/* Calificación */} +
+

+ Calificación: {Math.round((correctas / 12) * 100)}% +

+

+ {correctas} de 12 aciertos +

+
{/* ─── Columna derecha 50% ─── */} diff --git a/src/hooks/useRuleta.ts b/src/hooks/useRuleta.ts index 7f2c85b..1120176 100644 --- a/src/hooks/useRuleta.ts +++ b/src/hooks/useRuleta.ts @@ -49,10 +49,11 @@ function crearPool(): Record { export function useRuleta() { const poolInicial = useMemo(() => crearPool(), []) + const rotacionInicial = useMemo(() => Math.random() * 360, []) const [estado, setEstado] = useState({ isSpinning: false, - rotacion: 0, + rotacion: rotacionInicial, preguntaActual: null, categoriaActual: null, mostrarFeedback: false, @@ -66,7 +67,7 @@ export function useRuleta() { tiempoRestante: TIEMPO_LIMITE, }) - const rotacionRef = useRef(0) + const rotacionRef = useRef(rotacionInicial) const isSpinningRef = useRef(false) const completadoRef = useRef(false) const usadasRef = useRef>({})