Gestire mazzo di carte "atipico"

di il
2 risposte

Gestire mazzo di carte "atipico"

Ciao a tutti! Questo è il mio primo post su questo forum.
Sono uno studente al terzo anno di ingegneria informatica e, come progetto di tesi, devo sviluppare un RPG da tavolo (non so se posso rivelare il titolo) insieme ad altri due miei compagni. Avevo un dubbio sulla gestione di un mazzo di carte un po' strano: questo mazzo è composto di 90 carte, così strutturate:
13 carte bianche, 13 nere, 13 grigie, 13 rosa, 13 arancio, 13 blu e 12 jolly. Sono in conflitto aperto con gli altri due perché io pensavo di vedere il mazzo come un Deque di carte:
es. public class Card {
private String color; //abbiamo optato per la stringa e per un parser che inizializzi poi il colore
//metodi getter e setter
}
public class Deck {
private Deque<Card> deck;
//costruttore
// metodi per pescare, scartare
}

I miei compagni invece mi hanno imposto per loro comodità di vedere l'oggetto "Card" con attributi il colore e l'intero "numCards", che simboleggia il numero di carte di quel colore presente nel mazzo. Questa implementazione probabilmente è più efficiente dal punto di vista computazione, ma sinceramente mi sembra molto più difficile da gestire: per esempio, gli scarti andrebbero simulati solamente tramite l'incremento/decremento di un contatore, e inoltre avrei bisogno di creare una classe "mazzo garbage". Sarebbe anche inutilmente complesso il meccanismo del pescare le carte.

Secondo voi quale implementazione è più conveniente?
P.S. a chi è interessato posso inviare il diagramma UML del progetto

2 Risposte

  • Re: Gestire mazzo di carte "atipico"

    alepezzotta23 ha scritto:


    private String color; //abbiamo optato per la stringa e per un parser che inizializzi poi il colore
    Sarebbe meglio una enum piuttosto che una stringa.

    alepezzotta23 ha scritto:


    private Deque<Card> deck;
    Deque (una interfaccia) rappresenta solo: "A linear collection that supports element insertion and removal at both ends." (dal javadoc)
    Poi chiaramente dovresti scegliere una implementazione.

    alepezzotta23 ha scritto:


    I miei compagni invece mi hanno imposto per loro comodità di vedere l'oggetto "Card" con attributi il colore e l'intero "numCards", che simboleggia il numero di carte di quel colore presente nel mazzo.
    No, Card dovrebbe rappresentare 1 carta e basta, senza nulla a che fare con il mazzo o con quante carte ci sono nel mazzo.
  • Re: Gestire mazzo di carte "atipico"

    Sì certo, dovrei scegliere una implementazione di Deque, però è molto comoda.
    Ti ringrazio molto, ora il problema sarà convincerli
Devi accedere o registrarti per scrivere nel forum
2 risposte