Projecte Escacs - Especificacions

De Wiket
Salta a la navegació Salta a la cerca

Introducció

L'objectiu serà fer un joc d'escacs online multijugador.

En aquest cas, l'implementarem amb Cordova per poder compilar sobre una app mòbil.

Instal·la Cordova segons s'explica en aquesta wiki:

http://rikimaru.tk/wiki/index.php/Apache_Cordova

Tens informació vària de desenvolupament en aquesta altra:

https://cacauet.org/wiki/index.php/Cordova


Especificacions no funcionals

  • L'implementarem en una App mòbil utilitzant Cordova (M6)
  • La API de servidor (backend) la implementarem amb Laravel (M7)
  • El desplegament del backend el podeu fer sobre Heroku o sobre el vostre Amazon AWS (opcional).


Especificacions funcionals

  1. M6 Desenvolupament client:
    1. L'aplicació s'iniciarà amb login i password per poder jugar.
    2. Un cop logat es mostraran els usuaris disponibles per començar partida, i podrem triar contraa qui enfrontar-nos.
    3. Quan comença la partida, es mostra un taulell amb les figures (1 com a mínim per les blanques, i 1 per les negres).
    4. Cal controlar el torn de jugadors.
    5. Mourem figura marcant origen i destí. Transmetrem via API el moviment al servidor.
    6. L'usuari pot fer logout.
    7. Quan s'acaba la partida es torna a mostrar els jugadors disponibles per tornar a jugar.
  2. M7: Desenvolupament servidor:
    1. El backend (API) ha d'estar en producció (Heroku o AWS).
    2. Els jugadors cal que es registrin via web (sign up).
    3. Per poder jugar caldrà primer autenticar-se i otenir un token per la resta de la partida.
    4. La partida ha de ser amb 2 jugadors.
    5. Només cal implementar una sola figura (de la vostra elecció: rei, cavall, alfil, torre, ...) per cada jugador.
    6. Cal implementar la lògica del moviment de la figura (tenint en compte si és blanca o negra, si s'escau).
    7. Cal controlar el torn de la partida.

Tens una proposta de API en aquest enllaç:

https://cacauet.org/wiki/index.php/Web_Services:_exemple_Escacs#Especificaci.C3.B3

A aquesta API cal afegir-li la obtenció del token un cop fem el login.


Ampliacions

Podeu optar per ampliar el joc d'alguna d'aquestes maneres:

  • Implementar més figures.
  • Múltiples partides per jugador.
  • ...


Referències

Un tema important és solucionar la possibilitat de cridar a funcions amb fonts d'altres orígens, el què anomenem CORS (Cross-Origin Resource Sharing).

Aquí tens més info amb codi d'exemple:

https://cacauet.org/wiki/index.php/Cordova#APIs.2C_AJAX_i_CORS