¡Bienvenido al repositorio del proyecto Buscaminas en PHP! Este proyecto ofrece un emocionante juego de Buscaminas en línea, donde los jugadores pueden competir y guardar sus registros.
¿Quieres ver cómo funciona el Buscaminas en acción? ¡Accede a la demo en vivo ahora mismo!
- Juego clásico de Buscaminas en una línea.
- CRUD completo para gestionar jugadores.
- Puntuaciones de jugadores guardadas para competir en el tablero de líderes.
- Uso de JSON.
- Seguridad de datos para proteger la información del jugador.
Antes de comenzar, asegúrate de tener los siguientes requisitos:
- Servidor web (por ejemplo, Apache) con soporte para PHP.
- PHP 7.0 o superior.
- MySQL o cualquier otro sistema de gestión de bases de datos compatible.
-
Clona este repositorio en tu servidor web:
git clone https://github.com/bhamidou/buscaminas-php.git
-
Crea una base de datos MySQL y configura las credenciales en
Constantes.php
. -
Ejecuta el script SQL proporcionado en
database.sql
para crear las tablas necesarias en tu base de datos.
Montar un servidor con php:
php -S 127.0.0.1:1234
A continuación se enumeran los endpoints disponibles:
Enviar en el body:
{
"email":"[email protected]",
"pass":"1234"
}
- Descripción: Obtiene la lista de usuarios.
- Ejemplo de uso:
/admin/users
- Descripción: Obtiene los detalles de un usuario específico por su ID.
- Ejemplo de uso:
/admin/user/123
- Descripción: Crea un nuevo usuario.
- Ejemplo de uso:
/admin/user
- Parámetros requeridos:
user
(Datos del usuario).
{
"email":"[email protected]",
"pass":"1234",
"user" : {
"email":"[email protected]",
"pass":"1234",
"nombre":"test",
"rol":"0"
}
}
- Descripción: Actualiza el nombre y el rol de un usuario.
- Ejemplo de uso:
/admin/user
- Parámetros requeridos:
update
(Datos de actualización).
Para admin:
{
"email":"[email protected]",
"pass":"1234",
"getNewPassword" : {
"email":"[email protected]",
"pass":"1234"
}
}
Para usuario sin login:
{
"getNewPassword" : {
"email":"[email protected]",
"pass":"1234"
}
}
- Descripción: Elimina un usuario por su ID.
- Ejemplo de uso:
/admin/user/123
A estas rutas solo podrán acceder usuarios registrados, pero con cualquier tipo de rol.
- Descripción: Inicia una nueva partida.
- Ejemplo de uso:
/jugar
- Parámetros opcionales:
size
(número de casillas),numFlags
(número de minas). - Ejemplo de uso:
/jugar/{size}/{numFlags}
- Descripción: Obtiene el ranking de partidas.
- Ejemplo de uso:
/ranking
- Respuesta exitosa:
- Código de estado HTTP 200.
- Devuelve una lista de nombres de jugadores y la cantidad de partidas ganadas en formato JSON.
- Respuesta de error:
- Código de estado HTTP 404 si no hay datos disponibles.
-
Descripción: Abandona la partida actual.
-
Ejemplo de uso:
/surrender
-
Respuesta exitosa:
- Código de estado HTTP 201.
- Devuelve un mensaje de éxito y el estado final del tablero en formato JSON.
-
Respuesta de error:
- Código de estado HTTP 400 si el usuario no tiene una partida activa.
-
Descripción: Descubre una casilla en la partida.
-
Parámetros requeridos:
pos
(Posición a descubrir). -
Respuesta exitosa:
- Código de estado HTTP 200.
- Devuelve un mensaje de éxito y el estado actual del tablero en formato JSON.
-
Respuesta de error:
- Código de estado HTTP 400 si la posición está fuera de rango.
- Código de estado HTTP 404 si el usuario no tiene un juego activo.
- Código de estado HTTP 404 si se encuentra una bandera en la casilla descubierta, lo que indica que el usuario ha perdido.
-
Ejemplo de uso:
/jugar
{
"email":"[email protected]",
"pass":"1234",
"pos" : 1
}
- Descripción: Registra un nuevo usuario.
- Ejemplo de uso:
/signup
- Parámetros requeridos:
user
(Datos del usuario).
{
"user" : {
"email":"[email protected]",
"pass":"1234",
"nombre":"test",
"rol":"0"
}
}
- Descripción: Permite restablecer la contraseña.
- Ejemplo de uso:
/password
- Parámetros requeridos:
getNewPassword
(Datos de restablecimiento).
El servidor responde a las solicitudes con los siguientes códigos de estado y mensajes:
- Código de estado 404:
ROUTE NOT FOUND
(Ruta no encontrada). - Código de estado 405:
METHOD NOT SUPPORTED YET
(Método no admitido). - Código de estado 402:
PARAMETER REQUIRED
(Parámetro requerido).
¡Contribuciones son bienvenidas! Si deseas mejorar este proyecto, sigue estos pasos:
-
Haz un fork del repositorio.
-
Crea una rama para tu nueva función:
git checkout -b feature/nueva-funcion
. -
Realiza tus cambios y asegúrate de seguir las buenas prácticas de codificación.
-
Haz un pull request a la rama principal del proyecto.
-
Espera a que revisemos y fusionemos tus cambios. ¡Gracias por tu contribución!
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más detalles.
¡Diviértete jugando al Buscaminas en línea! 🕹️