import java.util.List;
import java.util.LinkedList;
public class Pila {
    private final List<Ficha> fichas;
    // Podria ser un Set porque no hay fichas repetidas.
    // Pero List tiene el E remove(int index)
    // Y Set solo tiene boolean remove(Object o) y boolean contains(Object o)
    public Pila() {
        fichas = new LinkedList<>();
        for(int a=0, n=0;a<=Ficha.NUM_MAS_ALTO;a++) {
            for(int b=a;b<=Ficha.NUM_MAS_ALTO;b++,n++) {
                fichas.add((new Ficha(a, b)));
            }
        }
    }
    public int getNumFichas() {
        return fichas.size();
    }
    @Override
    public String toString() {
        String s = "";
        for(Ficha f: fichas) {
            s += f;
        }
        return s;
    }
    Ficha cogerFichaDeLaPila() { // me olvide public. por tanto friendly
        return fichas.remove(Azar.numeroAlAzar(fichas.size()));
    }
    Boolean estaVacia() { // debiera ser boolean. Boxing/unboxing innecesario. 
        // Y tambien me olvide public. por tanto friendly
        return (fichas.isEmpty());
    }
}
