Projecte Memory

De Wiket
Salta a la navegació Salta a la cerca

Farem un projecte de desenvolupament per parelles per fer un joc del memory.

Especificacions funcionals: regles del joc del memory

  1. Tenim un taulell de NxM cartes (N i M configurable)
  2. Les cartes és un conjunt de parelles (2 uns, 2 dosos, 2 tresos, etc.)
  3. Les cartes estan cap per avall, i l'usuari no veu quina hi ha a cada lloc
  4. Torns:
    1. L'usuari anirà destapant les cartes (de dos en dos) per trobar les parelles.
    2. Si al destapar les 2 cartes no surten parella, l'usuari les visualitzarà durant S segons (configurable) però es tornaran a tapar seguidament.
    3. Si al destapar les 2 cartes apareix una parella, aquestes es mantindran visibles
  5. Quan l'usuari destapi totes les cartes, acaba la partida
  6. Puntuació:
    1. La puntuació serà el nº total d'intents que ha fet el jugador.
    2. Es considera millor puntuació el menor nº d'intents.
    3. El rànking de puntuacions serà, doncs, ascendent. El millor classificat serà el que hagi resolt el joc amb menor nº d'intents.


Especificacions no funcionals

Aquest projecte es pot resoldre de moltes maneres, sobretot tenint en compte que tenim a la nostra disposició una part de servidor en PHP i una part al client, en Javascript.

Per avaluar el vostre treball d'acord als mòduls M6, M7 i M9, i treure un 10 en cadascun, cal complir amb les següents especificacions:

  1. M7 (servidor, PHP):
    1. El servidor generarà la partida, la quadrícula, les parelles de cartes i les distribuirà sobre el tauler.
    2. Quan el jugador acabi la partida s'enviaran per POST la puntuació (intents) i el nom del jugador.
    3. Les dades de la partida es guardaran en un arxiu de text on, com a mínim, ha de figurar la puntuació i el nom del jugador.
    4. Es podrà visitar una pàgina que mostri el rànking de les millors puntuacions, i els jugadors que les han fet. Cal, doncs, ordenar les puntuacions de menor a major.
  2. M6 (client, Javascript):
    1. Al client el jugador anirà destapant les cartes
    2. Només pot destapar 2 cartes que es mostraran durant S segons. Si intenta destapar una 3a, no deixarà.
    3. Comptabilitzarem el nº d'intents i el mostrarem en el camp d'un formulari perquè l'usuari sàpiga en tot moment com va.
    4. Quan s'hagin destapat totes les cartes de forma exitosa, s'acaba la partida, i s'envia el formulari amb la puntuació i el nom de l'usuari al servidor perquè el posi al rànking.
  3. M9 (intefície):
    1. ...coming soon...


Variació per temps

Es pot fer una variant del joc: es dona un temps limitat i l'usuari ha de destapar el màxim de caselles possibles.

En aquest cas la puntuació seria el nº de parelles destapades, pel què el rànking hauria de ser descendents (de més punts a menys punts).


Sprint 2

  1. M7 (servidor, PHP):
    1. Si premem F5 (recarrega) durant la partida, la disposició de les cartes no canvia.
    2. Mostrarem 2 rànkings
      1. Ranking absolut: tots els usuaris "mundials" (traurem les dades de l'arxiu BD)
      2. Ranking del jugador: mostrarem els rècords de l'usuari actual (traurem les dades de la sessió)
  2. M6 (client, Javascript):
    1. Afegir un so al girar les cartes
    2. Afegir un so en cas de que les cartes girades NO siguin parelles
    3. Afegir un so en cas de que les cartes girades siguen parelles
    4. Permetre seleccionar mitjançant un Select-Options si el taulell es de 4x4, 6x6 o 8x8
    5. Afegir un comptador de temps de joc
    6. Implementar un sistema de ajuda. 3 ajudes disponibles. Cada ajuda consisteix en poder veure totes les cartes durant 3 segons. Això Sumarà 5 intents al total.
  3. M9 (interfície)
    1. ...coming soon...