Projecte Qui és qui

De Wiket
Salta a la navegació Salta a la cerca
Quienesquien2.jpg

Introducció

El joc del Qui és qui?

Farem el joc del qui es qui contra la màquina.

  1. El servidor triará una carta d'entre un seguit d'opcions i nosaltres l'haurem d'endevinar fent preguntes
  2. Cada carta tindrà una sèrie de característiques limitades i úniques.
  3. Les preguntes ens permetrà descartar opcions, per exemple: Porta ulleres? -> si la resposta es SI, descartem totes aquelles cartes que NO porten ulleres
  4. Guanyes el joc si totes les cartes menys 1 estan descartades i l'única que queda és la carta sel·leccionada pel servidor.
  5. Perds el joc si l'única carta que queda NO coincideix amb la sel·leccionada pel servidor.


Product Backlog

Especificacions funcionals

M6: programació client

  • Totes les cartes excepte la seleccionada pel servidor han de poder descartar-se (girar-se cap per avall)
  • Un cop descartada un carta NO pot tornar a girar-se
  • Crear un combo box per seleccionar les preguntes relacionades amb les ulleres (la pregunta ha de ser de SI o NO)
  • Crear un combo box per seleccionar les preguntes relacionades amb la barba (la pregunta ha de ser de SI o NO)
  • Crear un combo box per seleccionar les preguntes relacionades amb el Cabell (la pregunta ha de ser de SI o NO)
  • Crear un botó amb el text: "Fes la pregunta" que en clicar-lo detecti quin combo box té la pregunta a realitzar y consulti en els atributs de la carta seleccionada pel servidor la respota y la imprimeixi per pantalla
  • Si en clicar el botó "Fes la pregunta" hi ha més d'un combo box "activat" ha de mostrar un missatge de error informant que només es pot realitzar una pregunta cada cop
  • En cas de que el botó "Fes la pregunta" generi un error per que hi ha més d'un combo box "activat" a més a més de mostrar el missatge d'error ha de "resetejar" tots el combo box
  • Crea un algorisme que controli el final del joc. Quan només quedi una carta s'haurà de girar la carta de seleccionada per l'ordinador, si la carta que queda es la mateixa que la seleccionada per l'ordinador el jugador guanya el joc. En cas contrari el jugador perd el joc.
  • Després de realitzar una pregunta al ordinador si el jugador intenta realitzar una altra pregunta sense descartar cap carta ha de sortir un missatge d'avís amb el text: "Segur que vols realitzar un altre pregunta sense girar cap carta?"
  • Crea un apartat per mostrar un comptador amb el número de preguntes que s'han realitzat al ordinador
  • Crea un botó per activar el mode "EASY". Aquest botó només romandrà actiu i es podrà clicar si encara no hem realitzat cap pregunta
  • Implementa el mode "EASY", en aquest mode mode quan fem una pregunta al ordinador automaticament gira les cartes que no cumpleixen amb les condicions
  • Cada cop que es gira una carta s'ha d'escoltar un só (curt)
  • Si el joc finalitza y el jugador guanya s'ha d'escoltar un só de victoria
  • Si el joc finalitza y el jugador perd s'ha d'escoltar un só de fracàs
  • Implementa un Easter Egg

M7: programació servidor

  1. Configurarem les característiques dels personatges en un arxiu de configuració config.txt
  2. Les característiques són finites i hi haurà una per línia a l'arxiu de conf. Per exemple:
    ulleres: si no
    cabell: ros moreno castany
    sexe: dona home
  3. Les característiques (ros, moreno, dona, ... ) no poden contenir espais (en tot cas, poseu un underscore "_").
  4. El servidor haurà de triar una carta a l'atzar perquè l'endevini l'usuari.
  5. El servidor barrejarà totes les cartes per enviar-les al client i que les renderitzi.
  6. Disposarem d'un segon arxiu de configuració per a les imatges imatges.txt. Aquest etiquetarà les imatges disponibles amb les seves característiques adients. Per exemple:
    sofia.jpg : ulleres si , cabell castany , sexe dona
    pablo.jpg : ulleres no , cabell moreno , sexe home
  7. El servidor importarà les dades i les guardarà en un array.
  8. El servidor ens haurà de donar error de configuració en aquests casos:
    1. Dues imatges diferents tenen les mateixes característiques
    2. Una característica que apareix al fitxer imatges.txt no apareix al fitxer config.txt

M9: disseny d'interfície


Especifiacions no funcionals

  • Es treballarà amb Javascript pur, no es poden fer servir llibreries externes o frameworks
  • Es traballarà amb PHP
  • Cada carta tindrà 3 atributs: (ulleres -> SI o NO, barba -> SI o NO, Cabell -> ROS, CASTANY, BRU
  • Heu de trobar 12 cartes amb les convinacions dels 3 atributs únic.
    • Carta 1 => Ulleres, Barba, Ros,
    • Carta 2 => ulleres, barba, CASTANY
    • Carta 3 => ulleres, barba, BRU
    • Carta 4 => NO ulleres, barba, ROS
    • Carta 5 => NO ulleres, barba, CASTANY
    • Carta 6 => NO ulleres, barba, BRU
    • Carta 7 => ulleres, NO barba, ROS
    • Carta 8 => ulleres, NO barba, CASTANY
    • Carta 9 => ulleres, NO barba, BRU
    • Carta 10 => NO ulleres, NO barba, ROS
    • Carta 11 => NO ulleres, NO barba, CASTANY
    • Carta 12 => NO ulleres, NO barba, BRU



Definition of Done (DOF)

  1. Tasca implementada
  2. Tasca testejada
  3. Tasca comitejada
  4. Tasca pujada a producció


Gestió de projecte

Sprint #1 (27 hores) 4/10/18 -- 11/10/18


Sprint #2 (27 hores) 11/10/18 -- 19/10/18

  • En aquest Sprint com el dia 12/10/18 es festa teniu un dia més.


Sprint #3 (27 hores) 19/10/18 -- 26/10/18