import java.io.IOException;
/*
 * Este es el AnArrayList.java de W03H02_CollectionsLists
 * pero ahora usando ZArrayList y dando tamaño 10 en el constructor.
 * Y sin el tiraFichas porque no queria implementar el remove() de ZArrayList.
 */
public class ZArrayListTester {
    private final ZArrayList<Ficha> fichas;
    public ZArrayListTester() {
        fichas = new ZArrayList<>(10); // Constructor de ArrayList<E>
        int n = Ficha.MAX_NUM + 1;
        for (int i = 0; i <= Ficha.MAX_NUM; i++) {
            fichas.add(new Ficha((int) (Math.random() * n),
                    (int) (Math.random() * n)));
        }
    }
    public void misFichas() {
        System.out.println("Tienes " + fichas.size() + " fichas.");
        for (int i = 0; i <= Ficha.MAX_NUM; i++) {
            int n = 0;
            for (Ficha f : fichas) {
                if (f.getA() == i || f.getB() == i) {
                    n++;
                }
            }
            System.out.println("Tienes " + n + " " + i + "s.");
        }
        int n = 0;
        for (Ficha f : fichas) {
            if (f.getA() == f.getB()) {
                n++;
            }
        }
        System.out.println("Tienes " + n + " dobles.");
    }
    @Override
    public String toString() {
        String s = "";
        s += "fichas (" + fichas.size() + "): ";
        for (Ficha f : fichas) {
            s += f;
        }
        return s;
    }
    public static void main(String[] args) {
        ZArrayListTester d = new ZArrayListTester();
        System.out.println(d);
        d.misFichas();
        try {
            // Serializing the object
            SerializationUtil.serialize(d.fichas, "fichas.txt");
            // Deserializing the object
            ZArrayList<Ficha> newFichas = (ZArrayList<Ficha>) SerializationUtil.deserialize("fichas.txt");
            System.out.println(newFichas.toString());
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
