Diferència entre revisions de la pàgina «M3 - Programació estructurada / Pràctiques UF2: Pt2»

De wikiserver
Dreceres ràpides: navegació, cerca
(Atributs dels lluitadors)
(Atributs dels lluitadors)
Línia 23: Línia 23:
 
:*'''Punts de Vida Màxims:''' valor màxim que poden tenir els punts de vida en qualsevol moment.
 
:*'''Punts de Vida Màxims:''' valor màxim que poden tenir els punts de vida en qualsevol moment.
  
+
:*'''Atac:''' la seva capacitat de dur a terme amb èxit estratègies ofensives. S’usa per resoldre el resultat d’una ronda de combat.
Atac:
+
 
la seva capacitat de dur a terme amb èxit estratègies ofensives. S’usa per  
+
:*'''Defensa:''' igual que l’anterior, però per a estratègies defensives.
resoldre el resultat d’una ronda de combat.
+
 
+
El  programa  es  basa  en  què  el  ju
Defensa
+
gador  va  realitzant  un  combat  rere  l’altre  contra
: igual que l’anterior, però per a estratègies defensives.
+
diferents adversaris. Per guanyar, ha de sobreviure a deu combats. Fins que no acaba un
 +
combat, i s’ha decidit si el jugador l’ha guanyat o l’ha perdut, no es comença un de nou.
 +
A l’inici de cada combat, e
 +
s mostra l’estat actual del jugador, el valor actual de tots els
 +
seus atributs, i se li pregunta contra quin adversari vol lluitar. El jugador ha d’escriure el
 +
nom d’un adversari. Si aquest nom no es troba entre el dels adversaris disponibles en el
 +
joc, in
 +
iciarà un combat contra un triat a l’atzar entre tots els adversaris disponibles del
 +
seu  mateix  nivell  o  un  de  diferència.  Això  evita  que,  per  sorpresa,  es  trobi  que  ha  de
 +
lluitar contra un adversari massa poderós per a ell, impossible de guanyar.
 +
Si el n
 +
om pertany a algun adversari disponible, llavors s’enfronta contra ell. En aquest
 +
cas,  no  hi  ha  cap  restricció  de  nivell.  El  jugador  pot  triar  lluitar  contra  adversaris  molt
 +
més o menys poderosos que ell.
 +
Aquest  plantejament  està  disposat  de  manera  que,  d
 +
’entrada, un nou jugador no sap el
 +
nom  de  cap  adversari,  ja  que  no  es  proporciona  cap  llista  (a  menys  que  hagi  fet  el
 +
programa  o  vist  el  codi  font,  és  clar).  La  intenció  és  que  vagi  descobrint  nous  noms
 +
d’adversaris a mesura que va jugant partides, o parla
 +
nt amb amics que també juguin al
 +
joc
 +
.
  
 
==Resolució d'una ronda de combat==
 
==Resolució d'una ronda de combat==

Revisió del 16:27, 5 abr 2018

El joc de combats a l'arena

El programa que serveix com a fil argumental d’aquest apartat és un joc, en el qual el jugador es va enfrontant amb diversos adversaris en una arena. Cada combat es divideix en rondes, a l’inici de les quals el jugador i el seu adversari trien secretament una estratègia a seguir. Cada ronda pot seguir una estratègia diferent. Segons les estratègies triades per cadascú, el combat s’anirà resolent més favorablement cap a un o cap a l’altre, fins que finalment es consideri que un dels dos ha estat derrotat. Si es derrota l’adversari, s’atorga una puntuació al jugador. Si el jugador és derrotat, acaba la partida.

L’objectiu final del jugador és sobreviure deu combats, assolint la màxima puntuació possible en el procés.

Tant per mostrar dades a l’usuari com per introduir les ordres del jugador, s’usa només text.

Atributs dels lluitadors

Per descriure tots els lluitadors, tant el jugador com els seus adversaris, aquests disposen d’un seguit d’atributs que indiquen el seu estat en tot moment. Alguns d’aquests atributs serveixen per establir com progressa el combat i poden veure modificats els seus valors.

Tot seguit s’enumeren:

  • Nom: el nom del lluitador. Per al jugador és “Aventurer”, mentre que per als adversaris es referirà a criatures fantàstiques (“Nan”, “Ogre”, “Hidra”, etc.)
  • Nivell: indicador general de la capacitat de combat del lluitador.
  • Punts: els punts que ha acumulat el lluitador fins al moment.
  • Punts de Vida (PV): l’energia del lluitador actual, que pot variar al llarg del combat. Quan arriba a 0 o menys, es considera derrotat.
  • Punts de Vida Màxims: valor màxim que poden tenir els punts de vida en qualsevol moment.
  • Atac: la seva capacitat de dur a terme amb èxit estratègies ofensives. S’usa per resoldre el resultat d’una ronda de combat.
  • Defensa: igual que l’anterior, però per a estratègies defensives.

El programa es basa en què el ju gador va realitzant un combat rere l’altre contra diferents adversaris. Per guanyar, ha de sobreviure a deu combats. Fins que no acaba un combat, i s’ha decidit si el jugador l’ha guanyat o l’ha perdut, no es comença un de nou. A l’inici de cada combat, e s mostra l’estat actual del jugador, el valor actual de tots els seus atributs, i se li pregunta contra quin adversari vol lluitar. El jugador ha d’escriure el nom d’un adversari. Si aquest nom no es troba entre el dels adversaris disponibles en el joc, in iciarà un combat contra un triat a l’atzar entre tots els adversaris disponibles del seu mateix nivell o un de diferència. Això evita que, per sorpresa, es trobi que ha de lluitar contra un adversari massa poderós per a ell, impossible de guanyar. Si el n om pertany a algun adversari disponible, llavors s’enfronta contra ell. En aquest cas, no hi ha cap restricció de nivell. El jugador pot triar lluitar contra adversaris molt més o menys poderosos que ell. Aquest plantejament està disposat de manera que, d ’entrada, un nou jugador no sap el nom de cap adversari, ja que no es proporciona cap llista (a menys que hagi fet el programa o vist el codi font, és clar). La intenció és que vagi descobrint nous noms d’adversaris a mesura que va jugant partides, o parla nt amb amics que també juguin al joc .

Resolució d'una ronda de combat

Exemple de ronda de combat

Resolució de la finalització del combat

Identificació de les dades a tractar

Disseny descendent

Mòduls

El paquet "joc.arena.regles"

La classe Monedes

La classe Lluitador

Mètodes vinculats a l'estat del lluitador

La classe Bestiari

La classe Combat

Mètodes que cal codificar

El paquet "joc.arena.interficie"

La classe EntradaTeclat

La classe SortidaPantalla

La classe principal (JocArena)

Sortida del programa