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