Quote Originariamente inviata da JavaAddicted Visualizza il messaggio
Ciao, innanzitutto grazie per la risposta, non capisco bene cosa devo fare nel punto 1 e 3, potresti farmi degli esempi?
Molto molto abbozzato:

codice:
public class Mazzo {
    private List<Carta> carte;

    public Mazzo() {
        carte = new ArrayList<Carta>();

        //... tuoi cicli, creazione carte e tanti inserimenti nella lista
        //... es.  carte.add(new Carta("Spade", i));
    }

    public Carta estraiCarta() {
        //... estrai indice casuale 0 <= x < carte.size()
        //... prendi Carta al indice, rimuovi da carte e restituisci
    }
}

Per l'estrazione casuale, ripeto, vedi o Math.random() o la classe java.util.Random. Trovi innumerevoli esempi in rete.

Puoi anche sfruttare una caratteristica utile del remove(int index) di List. Ti restituisce l'elemento che hai rimosso. Quindi non hai nemmeno da fare un get.

E ripeto ancora, se non conosci i "generics", puoi togliere quei <Carta>. Nel estraiCarta dovrai però fare un cast perché solo List ti dà oggetti come Object e devi fare tu un cast a Carta.

Ah, e un'altra cosa che non ho detto prima. Il size() può dare 0 e ovviamente vuol dire che non avresti più carte da estrarre. In questo caso puoi restituire null o lanciare una eccezione (a tua scelta).