Quindi sto costruendo un gioco di carte in cui ogni carta ha cost , damage e durability , oltre a name e description . Ovviamente si potrebbe pensare di creare una classe Card :
class Card {
int cost
int damage
int durability
string name
string decription
}
werewolf = Card(5, 10, 120, 'Werewolf', 'Deal double damage during night')
mage = Card(7, 40, 40, 'Mage', 'Deal damage without taking damage himself')
Ma ora il problema è che ho bisogno di più copie di ognuna di queste istanze. Ogni giocatore nel gioco può avere 2 copie di ogni carta, il che significa fino a 8 copie di ogni carta.
Alcuni attributi sono "statici", vale a dire sempre uguale a tutte le istanze simili, ad esempio name , description e cost . Tuttavia, ogni istanza ha varietà in health e damage ; un mago potrebbe finire per avere più danni dopo che un incantesimo di potenziamento è stato lanciato su di lei, e un altro ha una salute inferiore dopo essere stato danneggiato.
Quale sarebbe un buon modo per implementare e strutturare tale funzionalità? Sottoclassi o qualcosa del genere e come?