Centre: Institut Esteve Terradas i Illa (Cornellà de Llobregat)
Cicle: Desenvolupament d'aplicacions web
Inici: 6 de octubre de 2026
Final: 29 de octubre de 2026
El penjat és un joc de mots en què l’objectiu és tractar d’endevinar una frase curta. Com a pista, s’indica el nombre de paraules i de lletres que formen la frase, representant cada lletra amb una ratlla horitzontal. El jugador van dient una lletra a cada torn; si aquesta es troba en la frase secreta, s’escriu a tots els llocs on apareix i, si no, s’afegeix un traç al dibuix del penjat. El joc finalitza quan s’acaba el dibuix abans d’endevinar la frase secreta, o bé quan la frase és descoberta.
Som-hi!
Inici: 6 de octubre de 2026
Final: 15 de octubre de 2026
Hores estimades totals: 24,0
hores estimades: 0,0 Mòduls: MP08
hores estimades: 2,0 Mòduls: MP09
hores estimades: 0,0 Mòduls:
hores estimades: 0,0 Mòduls: MP09
Hi ha mínim 3 idiomes:
hores estimades: 0,0 Mòduls: MP07
hores estimades: 1,0 Mòduls: MP08
Quan accedim a la pàgina index.php el servidor retornarà un html amb:
- Títol de la aplicació
-Descripció del joc + image
-Input per introduir el nom
-Select per seleccionar el nivell de dificultat, hi ha tres, per exemple: fàcil, normal i difícil. Es poden adaptar segons la temática.
-Botó per iniciar el joc
- Enllaç per visitar el ranking.
hores estimades: 1,0 Mòduls: MP06 MP07 MP08 MP09
Iniciarem el joc si hi ha un nom vàlid (redireccionar a la pàgina play.php, si el camp nom està buit comuniquem l'error al usuari sota el input en vermell i possem el focus al input (no fem cap redirecció).
hores estimades: 1,0 Mòduls: MP06 MP07 MP09
Quan carreguem aquesta pàgina segons el nivell de dificultat escollit carregarem aleatoriament una frase d'aquell nivell de dificultat i presentarem una pàgina amb:
-La frase escollida aleatoriament pel servidor amagada, només apareix el símbol "_" per cada caràcter de la frase curta.
- El dibuix (imatge) del penjat
-Un teclat visual (només lletres)
hores estimades: 3,0 Mòduls: MP06 MP07 MP09
El jugador clica (amb el ratolí) una tecla del teclat visual.
-Si la lletra està present a la frase actual:
-Es senyalitza aquella lletra com a CORRECTA (color)
-Si la lletra NO està a la frase actual:
-Es senyalitza aquella lletra como a INCORRECTA (color)
- El dibuix del penjat evoluciona
hores estimades: 3,0 Mòduls: MP06 MP09
Després de senyalitzar una lletra com a correcta o incorrecta s'ha de comprobar que:
Si es cumpleix cap de les opcions anteriors, es mostrarà la pàgina gameover.php
hores estimades: 2,0 Mòduls: MP06 MP09
Elaborar un algorisme de càlcul de puntuació basat en la frase a endevinar, el nombre d'errors fets i el temps emprat per a la partida. Documenteu aquest algorisme a la wiki del repositori de Github.
hores estimades: 2,0 Mòduls: MP06 MP07 MP09
A l'acabar la partida (game over) s'ofereix l'usuari de registrar el seu rècord (pot no fer-ho).
Si accepta, s'enregistra el rècord en un arxiu. (nom, puntuació i data del record).
L'arxiu s'nomena records.txt i es troba a l'arrel del projecte.
Es mostra el rànking i es ressalta la puntuació que acaba d'aconseguir l'usuari.
Es mostra el rànking de rècords en format zebra (diferent color per cada línia).
El ranking esta ordenat per puntuació descendent.
hores estimades: 3,0 Mòduls: MP07 MP09
Aquest missatge apareix a index.php i a game.php. A més a més, a index.php si no hi ha Javascript el botó jugar te aspecte de "disabled" i no es pot clickar.
hores estimades: 2,0 Mòduls: MP06 MP09
hores estimades: 2,0 Mòduls: MP06 MP09
Aquesta pàgina mínim ha de contenir dos enllaços per ajudar al visitant a moure's per la nostra pàgina: a l'index i al ranking.
L'arxiu s'anomena error404.php
hores estimades: 1,0 Mòduls: MP08 MP09
L'arxiu s'anomena error403.php. Es un error de "Forbidden" ha d'estar personalitzada amb la tematica del projecte.
hores estimades: 1,0 Mòduls: MP06 MP07 MP08 MP09
Inici: 15 de octubre de 2026
Final: 22 de octubre de 2026
Hores estimades totals: 22,0
hores estimades: 1,0 Mòduls: MP08
Quan accedim a la pàgina index.php el servidor retornarà un html amb:
- Títol de la aplicació
-Descripció del joc + image
-Input per introduir el nom
-Select per seleccionar el nivell de dificultat, hi ha tres, per exemple: fàcil, normal i difícil. Es poden adaptar segons la temática.
-Botó per iniciar el joc
- Enllaç per visitar el ranking.
hores estimades: 1,0 Mòduls: MP06 MP07 MP08 MP09
Iniciarem el joc si hi ha un nom vàlid (redireccionar a la pàgina play.php, si el camp nom està buit comuniquem l'error al usuari sota el input en vermell i possem el focus al input (no fem cap redirecció).
hores estimades: 1,0 Mòduls: MP06 MP07 MP09
Quan carreguem aquesta pàgina segons el nivell de dificultat escollit carregarem aleatoriament una frase d'aquell nivell de dificultat i presentarem una pàgina amb:
-La frase escollida aleatoriament pel servidor amagada, només apareix el símbol "_" per cada caràcter de la frase curta.
- El dibuix (imatge) del penjat
-Un teclat visual (només lletres)
hores estimades: 3,0 Mòduls: MP06 MP07 MP09
El jugador clica (amb el ratolí) una tecla del teclat visual.
-Si la lletra està present a la frase actual:
-Es senyalitza aquella lletra com a CORRECTA (color)
-Si la lletra NO està a la frase actual:
-Es senyalitza aquella lletra como a INCORRECTA (color)
- El dibuix del penjat evoluciona
hores estimades: 3,0 Mòduls: MP06 MP09
Després de senyalitzar una lletra com a correcta o incorrecta s'ha de comprobar que:
Si es cumpleix cap de les opcions anteriors, es mostrarà la pàgina gameover.php
hores estimades: 2,0 Mòduls: MP06 MP09
Elaborar un algorisme de càlcul de puntuació basat en la frase a endevinar, el nombre d'errors fets i el temps emprat per a la partida. Documenteu aquest algorisme a la wiki del repositori de Github.
hores estimades: 2,0 Mòduls: MP06 MP07 MP09
A l'acabar la partida (game over) s'ofereix l'usuari de registrar el seu rècord (pot no fer-ho).
Si accepta, s'enregistra el rècord en un arxiu. (nom, puntuació i data del record).
L'arxiu s'nomena records.txt i es troba a l'arrel del projecte.
Es mostra el rànking i es ressalta la puntuació que acaba d'aconseguir l'usuari.
Es mostra el rànking de rècords en format zebra (diferent color per cada línia).
El ranking esta ordenat per puntuació descendent.
hores estimades: 3,0 Mòduls: MP07 MP09
Aquest missatge apareix a index.php i a game.php. A més a més, a index.php si no hi ha Javascript el botó jugar te aspecte de "disabled" i no es pot clickar.
hores estimades: 2,0 Mòduls: MP06 MP09
hores estimades: 2,0 Mòduls: MP06 MP09
Aquesta pàgina mínim ha de contenir dos enllaços per ajudar al visitant a moure's per la nostra pàgina: a l'index i al ranking.
L'arxiu s'anomena error404.php
hores estimades: 1,0 Mòduls: MP08 MP09
L'arxiu s'anomena error403.php. Es un error de "Forbidden" ha d'estar personalitzada amb la tematica del projecte.
hores estimades: 1,0 Mòduls: MP06 MP07 MP08 MP09
Inici: 22 de octubre de 2026
Final: 29 de octubre de 2026
Hores estimades totals: 30,0
hores estimades: 3,0 Mòduls: MP06 MP09
Si es clica la vocal i no es pot, apareixerà un missatge (per sobre del teclat) informant adequadament l'usuari de la restricció.
Quan només quedin 3 lletres diferents, la restricció es desactivarà.
hores estimades: 3,0 Mòduls: MP06 MP09
Les frases provenen d'un sol arxiu de text.
La classificació de la dificultat de les frases s'ha de basar en la quantitat de lletres que ni hi ha presents a la frase i la seva longitud. Trieu a que li doneu més importancia.
Documentar-ho a la wiki.
hores estimades: 2,0 Mòduls: MP07
Els arxius de /admin son: index.php (llistat), login.php, logout.php, delete_sentence.php, create_sentence.php
hores estimades: 0,0 Mòduls: MP07 MP08 MP09
Un administrador pot entrar al panell de control de l'aplicació visitant /admin
Les credencials estaran emmagatzemades a /admin/credentials.txt
Si no estic logat, veiem el formulari de login.
Un cop logat es mostrarà /admin/index.php que oferirà les opcions:
Cal implementar el login i el logout. L'arxiu serà admin/logout.php
hores estimades: 3,0 Mòduls: MP07 MP09
Sessió: en totes les pàgines de la zona admin apareix el nom de l'usuari administrador i un enllaç ràpid per tancar sessió.
La sessió de jugador es diferent a la sessió de admin, si es tanca una no afecta a l'altre i viceversa.
hores estimades: 0,0 Mòduls: MP07 MP09
L'administrador podrà visualitzar un llistat de frases.
A cada frase es mostra el seu nivell de dificultat (nombre de lletres que no hi son).
El llistat ha de tenir format zebra (canvi de color de línies parells i senars).
Hi haurà un botó d'eliminar per cada frase (SUBMIT POST, no ajax). Si es prem, elimina la frase. Ha d'haver-hi un missatge (feedback) tant si s'esbrorra (èxit) com si no (errors).
hores estimades: 3,0 Mòduls: MP07 MP09
Els arxius de credencials (admin/credentials.txt) i els llistats de frases (sentences_XX.txt) han d'estar protegits i no es poden visitar amb el navegador. Si s'intenta accedir mostrarà un 403.
hores estimades: 1,0 Mòduls: MP08
L'administrador podrà afegir una nova frase.
A mesura que l'admin escriu la paraula, es calcularà dinàmicament el nivell de dificultat, i es mostrarà.
Les frases apareixeran als jugadors de forma aleatòria dins del nivell triat.
L'arxiu és create_sentence.php.
Ha d'haver-hi un missatge tant si es crea la frase (èxit) com si no (errors).
hores estimades: 4,0 Mòduls: MP06 MP07 MP09
hores estimades: 1,0 Mòduls: MP07
A la pantalla d'inici (index) es permet triar l'idioma (i no es pot canviar ja després).
hores estimades: 10,0 Mòduls: MP07
Enlloc de jugar una partida sola, entrarem en un mode de partida "endurance" que es basa en fer el màxim de punts en 5 minuts en diverses rondes.
hores estimades: 0,0 Mòduls: MP07
hores estimades: 0,0 Mòduls: MP09
hores estimades: 0,0 Mòduls: MP09
Apareix un cronòmetre a la part dereta de la pantalla de joc que s'inicia quan apareix la frase i s'atura quan s'arriba al final de la partida.
Aquest temps s'ha de tenir en compte en la puntuació final i també ha d'apareixer en el rànking
A la wiki de github s'ha de definir el calcul intern de la nova puntuació.
hores estimades: 0,0 Mòduls: MP06 MP09
Cada acció/formulari crea un registre a l'arxiu de logs. Per exemple: Iniciar joc desde la pantalla de inici, enregistrar ranking, login i logout de admin, logout de jugador. Esborrar una frase, crera una nova frase...
Mínim ha de contenir la data, l'arxiu a on es genera el log i el missatge a enrgistrar.
L'arxiu es troba a /admin/logs.txt.
L'arxiu no es accesible desde el web, i retorna un 403 en cas d'intentar accedir directament.
hores estimades: 0,0 Mòduls: MP07
Afegir un paginador (25 resultats per pàgina) a les pàgines de ranking, admin/list_sentences i admin/logs. El paginador funciona amb GET parameters.
hores estimades: 0,0 Mòduls: MP06 MP07 MP09
hores estimades: 0,0 Mòduls: MP06 MP07 MP09
Llistar el logs en format taula (amb estils zebra).
A la pantalla d'inici de admin apareix un nou enllaç que apunta a llistar el logs.
L'arxiu s'anomena: list_logs.php
hores estimades: 0,0 Mòduls: MP06 MP07 MP09
hores estimades: 0,0 Mòduls: MP06 MP09
Si la sessió esta iniciada, quan es motra el nom també apareix un enllaç amb el text "Tancar sessió" que apunta a logout.php i aquest destrueix la sessió (si existeix o no) i redirecciona sempre a index.php
hores estimades: 0,0 Mòduls: MP06 MP07 MP09