Aplicación web que requiere que una máquina ejecute un servidor local. Luego, los jugadores pueden registrarse, iniciar sesión y conectarse al juego principal. Luego, los jugadores pueden ver su información en el dispositivo principal (un dispositivo para mostrar la página de índice a todos los usuarios), así como en su propio dispositivo (preferiblemente un dispositivo móvil) y realizar ofertas entre sí.
Probado usando:
PHP 7.0.8
con PHPUnit 5.7.4
para ejecutar los casos de pruebaComposer 1.00-beta2
MySQL 5.7.4
Apache 2.4.18
Esto asumirá que tiene todos los programas descargados/ejecutándose y no podrá utilizar Composer y PHPUnit.
Todos los esquemas se encuentran en el director MySQL/
.
Para agregar el esquema (suponiendo que esté en el directorio correcto):
mysql < MySQL/schema.sql
Chip Manager depende mucho de su archivo de configuración, llamado config.ini
, que debe crear y almacenar en el directorio raíz.
La estructura básica del archivo de configuración se parece a
[database]
username = username
password = password
server = server_address
database = database_name
[information]
address = local_address
logfile = log_file
Debe reemplazar cada una de las variables para que coincida con su configuración.
La página de índice enumerará a todos los que están jugando en ese momento (obteniendo su estado de conexión) y los enumerará junto con su información actual (como su oferta actual/fichas totales).
play.php
maneja el lado del cliente del juego y permite a las personas jugar a través de un cliente web compatible con dispositivos móviles. Es muy similar a la aplicación de Android, por lo que cambiar entre ambas no debería ser un problema.
Una pantalla principal estará presente en la mesa de juego y mostrará la página index.php
.
Luego, los jugadores usarán sus propios dispositivos para acceder al servidor que ejecuta el juego, registrarse usando register.php
, iniciar sesión usando login.php
y luego serán redirigidos a play.php
donde podrán realizar ofertas y participar en el juego.
A medida que los jugadores hagan ofertas, su información se mostrará en la pantalla principal. Cuando un jugador gana, al hacer clic en "el jugador ganó" se transferirán todas las fichas de oferta a ese jugador.
Las llamadas API están destinadas a aplicaciones externas (como la aplicación de Android), así como al uso de algunas tareas básicas del juego.
Cada archivo php devuelve 3 parámetros en forma de JSON:
Nombre | Descripción | Siempre presente |
---|---|---|
error | Si hay un mensaje de error, se devolverá una descripción de cadena. De lo contrario, se devolverá 0 | VERDADERO |
éxito | Si la transacción fue exitosa o no (0 o 1) | VERDADERO |
datos | Los datos que se devolvieron. A menudo tendrá subniveles de JSON. | FALSO |
Llamadas API que afectan el juego en progreso u obtienen información sobre el juego actual. Estos se almacenan en el directorio api/game
.
Obtiene todos los ID de los jugadores conectados en una matriz en data['players']
.
Obtenga toda la información de los jugadores conectados, incluyendo:
La información del jugador se almacena en data['players']
.
Inicia sesión en el reproductor según la combinación de nombre de usuario y contraseña y configura el reproductor como conectado.
Requiere dos parámetros POST
:
username
: nombre de usuario del jugador para iniciar sesiónpassword
- Contraseña para verificar el jugador Hágale saber al juego que el jugador ha ganado el juego actual. Recibirán todas las fichas que hayan ofertado todos los jugadores.
Requiere un parámetro GET
o POST
:
ID
- El ID de los jugadores ganadores Para verificación, devuelve el ID del jugador ganador en data['winner']
y la cantidad que el jugador ganó en data['chips_won']
.
Llamadas API que afectan al reproductor. Requiere el ID
como parámetro GET
o POST
.
Realiza una nueva oferta por el jugador.
Requiere un parámetro GET
o POST
adicional:
amount
: la cantidad que el jugador quiere apostar Devuelve toda la información del jugador bajo data
Obtiene toda la información actual de los usuarios.
Toma un parámetro opcional adicional:
needs_update
: si se establece en 1
, comprobará si el reproductor necesita actualizarse antes de devolver información. Devuelve toda la información del jugador bajo data
Restablece la oferta actual del jugador a 0
Comprueba si es necesario actualizar el reproductor. Si es así, devuelva toda la información del jugador.
Devuelve si el reproductor se actualizó en data['needs_update']
e información sobre el reproductor en data['player']