Activitats
Ranquing orientat a byte
L’objectiu d’aquesta activitat és veure com modificar un mòdul de manera que no calgui modificar absolutament res de la resta del programa.
Modifiqueu la classe Ranquing
, amb la qual heu treballat als continguts d’aquest apartat, de manera que ara, en lloc de treballar amb un fitxer orientat a caràcter, ho faci amb un orientat a byte. Les dades que ha de contenir són les mateixes (una llista amb conjunts de tres inicials i la puntuació associada). En aquest cas, però, no hi ha puntuacions per defecte a l’inici del joc. Primer de tot no hi ha fitxer, i el llistat va incorporant les puntuacions de successives partides a poc a poc, amb un màxim sempre de 10 alhora. Després de la primera partida hi haurà 1 puntuació, després de la segona 2, etc. Això vol dir que les 10 primeres puntuacions al llarg de la vida del joc sempre s’inclouran al fitxer.
En dur a terme aquesta tasca, cal mantenir els principis de modularitat. Això implica que no ha de caldre modificar absolutament cap altra classe llevat de Ranquing
.
Editor de bestiari avançat
L’objectiu d’aquesta activitat és practicar l’accés a fitxers relatius.
Modifiqueu la classe EditorBestiari
, presentada als continguts d’aquest apartat, de manera que ara, en eliminar un adversari del fitxer, no ho faci pel final. Ha de preguntar quina posició es vol eliminar (la primera és la 0) i esborrar només aquell adversari. El nou programa ha de garantir que l’usuari mai posa una posició incorrecta (un valor que no és enter o que no existeix al fitxer).
Tot seguit es mostra una sortida d’exemple del programa:
Nom del fitxer a editar: Adversaris [0] Nan : Nivell: 1 (punts: 25) VIDA: 8 ATAC: 3 DEFENSA: 3 [1] Kobold : Nivell: 1 (punts: 30) VIDA: 10 ATAC: 4 DEFENSA: 2 [2] Orc : Nivell: 2 (punts: 35) VIDA: 12 ATAC: 4 DEFENSA: 3 [3] Profund : Nivell: 2 (punts: 40) VIDA: 14 ATAC: 3 DEFENSA: 4 [4] Bruixot Malvat : Nivell: 3 (punts: 45) VIDA: 15 ATAC: 3 DEFENSA: 5 [5] Ogre : Nivell: 3 (punts: 50) VIDA: 16 ATAC: 5 DEFENSA: 2 [6] Guerrer Caòtic : Nivell: 4 (punts: 55) VIDA: 15 ATAC: 4 DEFENSA: 4 [7] Troll : Nivell: 4 (punts: 60) VIDA: 18 ATAC: 3 DEFENSA: 5 [8] Elemental Terra: Nivell: 5 (punts: 70) VIDA: 22 ATAC: 4 DEFENSA: 6 [9] Hidra : Nivell: 5 (punts: 80) VIDA: 30 ATAC: 8 DEFENSA: 2 ------------------------------ [A]fegir [E]liminar [S]ortir Acció: e Posició a tractar [0 - 9]: 10 Aquesta no existeix. Posició a tractar [0 - 9]: -1 Aquesta no existeix. Posició a tractar [0 - 9]: 2 [0] Nan : Nivell: 1 (punts: 25) VIDA: 8 ATAC: 3 DEFENSA: 3 [1] Kobold : Nivell: 1 (punts: 30) VIDA: 10 ATAC: 4 DEFENSA: 2 [2] Profund : Nivell: 2 (punts: 40) VIDA: 14 ATAC: 3 DEFENSA: 4 [3] Bruixot Malvat : Nivell: 3 (punts: 45) VIDA: 15 ATAC: 3 DEFENSA: 5 [4] Ogre : Nivell: 3 (punts: 50) VIDA: 16 ATAC: 5 DEFENSA: 2 [5] Guerrer Caòtic : Nivell: 4 (punts: 55) VIDA: 15 ATAC: 4 DEFENSA: 4 [6] Troll : Nivell: 4 (punts: 60) VIDA: 18 ATAC: 3 DEFENSA: 5 [7] Elemental Terra: Nivell: 5 (punts: 70) VIDA: 22 ATAC: 4 DEFENSA: 6 [8] Hidra : Nivell: 5 (punts: 80) VIDA: 30 ATAC: 8 DEFENSA: 2 ------------------------------ [A]fegir [E]liminar [S]ortir Acció: e Posició a tractar [0 - 8]: ...
Desar partida
L’objectiu d’aquesta activitat és aprendre a afegir un nou mòdul a una aplicació ja existent.
Amplieu l’aplicació del joc de lluites a l’arena, usat al llarg dels continguts d’aquest apartat, i deseu la partida quan sigui possible. Quan el joc pregunta contra quin adversari lluitar, es pot usar l’ordre “desar”. En fer-ho, es desa l’estat de la partida en un fitxer anomenat “Partida.sav”. Dins seu es desa el número de combat actual i estat dels atributs del jugador. Immediatament, la partida acaba (sense comprovar si hi ha una màxima puntuació).
Cada cop que s’inicia un joc, es comprova si existeix aquest fitxer. Si no existeix, la partida s’inicia normalment com fins ara. Si existeix, el jugador i el número de combat s’obté d’aquest fitxer, de manera que la partida segueix exactament des del punt on es va desar. En fer-ho, el fitxer s’elimina, de manera que només és possible recuperar la partida una única vegada.
Porteu a terme aquesta tasca aplicant els principis bàsics de modularitat.