20 Commits

Author SHA1 Message Date
Juanjo cbdbd8bc4b Añadir tiempoRespuesta 2026-10-01 14:12:36 +02:00
jorge befc6a7cc1 Merge pull request 'add tiempo de respuesta' (#26) from add_tiempo into main
Reviewed-on: #26
2026-10-01 13:03:54 +02:00
alexis e9cf7c8fcf add tiempo de respuesta 2026-10-01 12:53:45 +02:00
dbvictor2002 111a101037 Subir archivos a "js" 2026-10-01 12:42:03 +02:00
dbvictor2002 71b7337dba Subir archivos a "controladores" 2026-10-01 12:39:45 +02:00
jorge dc5c04b693 Merge branch 'main' of https://git.desarrolloalcala.com/jorge/triviagmatico 2026-10-01 12:37:29 +02:00
dbvictor2002 29eb70b626 Subir archivos a "/" 2026-10-01 12:33:57 +02:00
margarita 5bf5b7a3bc triviagmatico 30/09/26 a 13:30 2026-10-01 12:07:47 +02:00
jorge e8accf949e revert 7f70112f63
revert Merge pull request 'Fix inicia partida todos los usuarios' (#21) from partida into main

Reviewed-on: #21
2026-10-01 11:16:36 +02:00
jorge fa883cde39 revert eed77db62f
revert Subir archivos a "controladores"
2026-10-01 11:16:20 +02:00
jorge ae213a3d12 revert a66ac7086d
revert Subir archivos a "js"
2026-10-01 11:16:14 +02:00
jorge cd0685f41c revert 71fb45b94c
revert Merge branch 'main' of https://git.desarrolloalcala.com/jorge/triviagmatico
2026-10-01 11:15:10 +02:00
jorge e3395a017c revert 8d5d7da615
revert Merge pull request 'Resultados victor' (#25) from resultados_victor into main

Reviewed-on: #25
2026-10-01 11:13:07 +02:00
jorge 396aca8b03 revert c6db380ef9
revert Merge branch 'main' of https://git.desarrolloalcala.com/jorge/triviagmatico
2026-10-01 11:12:58 +02:00
jorge c6db380ef9 Merge branch 'main' of https://git.desarrolloalcala.com/jorge/triviagmatico 2026-10-01 10:53:03 +02:00
jorge 8d5d7da615 Merge pull request 'Resultados victor' (#25) from resultados_victor into main
Reviewed-on: #25
2026-10-01 10:52:42 +02:00
jorge 7f70112f63 Merge pull request 'Fix inicia partida todos los usuarios' (#21) from partida into main
Reviewed-on: #21
2026-10-01 10:49:10 +02:00
jorge 71fb45b94c Merge branch 'main' of https://git.desarrolloalcala.com/jorge/triviagmatico 2026-10-01 08:58:45 +02:00
jorge 2531ef321a cabecera mvc modificada 2026-09-30 11:08:09 +02:00
dbvictor2002 5446352cf9 Fix inicia partida todos los usuarios 2026-09-30 10:21:43 +02:00
5 changed files with 87 additions and 45 deletions
+9 -2
View File
@@ -229,7 +229,13 @@ class Juego
* - la respuesta pertenece a esa pregunta
* - el usuario no ha respondido ya esa pregunta
*/
public static function registrarRespuesta($idPartida, $idUsuario, $idPartidaxPregunta, $idRespuesta)
public static function registrarRespuesta(
$idPartida,
$idUsuario,
$idPartidaxPregunta,
$idRespuesta,
$tiempoRespuesta
)
{
$conexion = conexionBD();
if (is_array($conexion)) {
@@ -298,7 +304,8 @@ class Juego
null,
$idPartidaxPregunta,
$idUsuario,
$idRespuesta
$idRespuesta,
$tiempoRespuesta
);
$guardado = $almacenada->guardarRespuesta();
+2
View File
@@ -24,6 +24,8 @@ class Respuesta{
$consulta->bindParam(':idPregunta', $this->idPregunta);
$consulta->bindParam(':nombreRespuesta', $this->nombreRespuesta);
$consulta->bindParam(':correcta', $this->correcta);
$consulta->execute();
$respuesta = [
'exito' => 'La respuesta se guardó correctamente.',
+18 -8
View File
@@ -7,12 +7,14 @@ class RespuestaAlmacenada {
public $idPartidaxPregunta;
public $idUsuario;
public $idRespuesta;
public $tiempoRespuesta;
public function __construct($idRespuestaAlmacenada = null, $idPartidaxPregunta = null, $idUsuario = null, $idRespuesta = null) {
public function __construct($idRespuestaAlmacenada = null, $idPartidaxPregunta = null, $idUsuario = null, $idRespuesta = null, $tiempoRespuesta = null) {
$this->idRespuestaAlmacenada = $idRespuestaAlmacenada;
$this->idPartidaxPregunta = $idPartidaxPregunta;
$this->idUsuario = $idUsuario;
$this->idRespuesta = $idRespuesta;
$this->tiempoRespuesta = $tiempoRespuesta;
}
/**
@@ -20,29 +22,37 @@ class RespuestaAlmacenada {
*/
public function guardarRespuesta() {
$conexion = conexionBD();
if (is_array($conexion)) return $conexion;
if (is_array($conexion)) {
return $conexion;
}
try {
$sql = "INSERT INTO respuestaalmacenada (idPartidaxPregunta, idUsuario, idRespuesta)
VALUES (:idPartidaxPregunta, :idUsuario, :idRespuesta)";
$sql = "INSERT INTO respuestaalmacenada
(idPartidaxPregunta, idUsuario, idRespuesta, tiempoRespuesta)
VALUES
(:idPartidaxPregunta, :idUsuario, :idRespuesta, :tiempoRespuesta)";
$consulta = $conexion->prepare($sql);
$consulta->bindParam(':idPartidaxPregunta', $this->idPartidaxPregunta);
$consulta->bindParam(':idUsuario', $this->idUsuario);
$consulta->bindParam(':idRespuesta', $this->idRespuesta);
$consulta->bindParam(':tiempoRespuesta', $this->tiempoRespuesta);
$consulta->execute();
return [
'exito' => 'Respuesta del usuario almacenada correctamente.',
'exito_tecnico' => $conexion->lastInsertId()
'exito' => 'Respuesta almacenada correctamente.'
];
} catch (PDOException $error) {
return [
'error' => 'Ocurrió un error al guardar la respuesta del jugador.',
'error' => 'Ocurrió un error al guardar la respuesta.',
'error_tecnico' => $error->getMessage()
];
}
}
}
/**
* Obtiene los aciertos totales de un usuario en una partida específica.
+20 -7
View File
@@ -74,7 +74,11 @@ switch ($orden) {
case 'responder':
if (!isset($_POST['idPartidaxPregunta']) || !isset($_POST['idRespuesta'])){
if (
!isset($_POST['idPartidaxPregunta']) ||
!isset($_POST['idRespuesta']) ||
!isset($_POST['tiempoRespuesta'])
) {
echo json_encode([
'error' => 'Faltan datos para registrar la respuesta.'
]);
@@ -83,11 +87,14 @@ switch ($orden) {
}
$idPartidaxPregunta = intval($_POST['idPartidaxPregunta']);
$idRespuesta = intval($_POST['idRespuesta']);
$tiempoRespuesta = intval($_POST['tiempoRespuesta']);
if ($idPartidaxPregunta <= 0 || $idRespuesta <= 0){
if (
$idPartidaxPregunta <= 0 ||
$idRespuesta <= 0 ||
$tiempoRespuesta < 0
) {
echo json_encode([
'error' => 'Los datos de la respuesta no son válidos.'
]);
@@ -95,13 +102,19 @@ switch ($orden) {
break;
}
// Registramos la respuesta del usuario
// Registramos la respuesta del usuario junto con su tiempo de respuesta
$resultado = Juego::registrarRespuesta($idPartida, $idUsuario, $idPartidaxPregunta, $idRespuesta);
$resultado = Juego::registrarRespuesta(
$idPartida,
$idUsuario,
$idPartidaxPregunta,
$idRespuesta,
$tiempoRespuesta
);
echo json_encode($resultado);
break;
break;
// Finalizar la partida y registrar los aciertos del usuario
+11 -1
View File
@@ -18,9 +18,10 @@ let preguntas = [];
let indice = 0; // pregunta que se está mostrando
let bloqueado = false; // true mientras se envía una respuesta o se ve el feedback
let numeroAciertos = 0; // número de aciertos del jugador
let tiempoRespuesta = 0;
let intervaloTiempo;
$(document).ready(function () {
// Obtenemos el idPartida de la URL
// Ejemplo: juego.php?idPartida=3
@@ -83,6 +84,11 @@ function cargarPreguntas() {
function mostrarPregunta() {
const pregunta = preguntas[indice];
tiempoRespuesta = 0;
intervaloTiempo = setInterval(function () {
tiempoRespuesta++;
}, 100);
bloqueado = false;
$("#textoPregunta").text(pregunta.nombrePregunta);
@@ -111,6 +117,9 @@ function mostrarPregunta() {
// 3. El usuario pulsa una respuesta: se guarda y se enseña si ha acertado
function responder($botonPulsado) {
clearInterval(intervaloTiempo);
console.log("Tiempo de respuesta: " + tiempoRespuesta / 10 + " segundos");
if (bloqueado) {
return;
}
@@ -131,6 +140,7 @@ function responder($botonPulsado) {
idPartida: idPartida,
idPartidaxPregunta: pregunta.idPartidaxPregunta,
idRespuesta: idRespuesta,
tiempoRespuesta: tiempoRespuesta,
},
success: function (datos) {
if (datos.error) {