import java.util.LinkedList;
public class Mesa {
    private final LinkedList<Ficha> mesa;
    // mesa: f[0].a:f[0].b|f[1].a:f[1].b|f[2].a:f[2].b|...
    public Mesa() {
        mesa = new LinkedList<>();
    }
    public int getExtremoIzquierdo() {
        return mesa.getFirst().getA();
    }
    public int getExtremoDerecho() {
        return mesa.getLast().getB();
    }
    public void tirarPrimeraFicha(Ficha ficha) {
        if (mesa.isEmpty()) {
            mesa.add(ficha);
        }
    }
    public void tirarPorLaIzquierda(Ficha ficha) {
        if (ficha.getB() == mesa.getFirst().getA()) {
            mesa.addFirst(ficha);
        } else if (ficha.getA() == mesa.getFirst().getA()) {
            mesa.addFirst(ficha.girar());
        } else {
            System.out.println("ERR: tirarPorLaIzquirda()");
        }
    }
    public void tirarPorLaDerecha(Ficha ficha) {
        if (ficha.getA() == mesa.getLast().getB()) {
            mesa.addLast(ficha);
        } else if (ficha.getB() == mesa.getLast().getB()) {
            mesa.addLast(ficha.girar());
        } else {
            System.out.println("ERR: tirarPorLaDerecha()");
        }
    }
    public int cuantasFichasConNum(int n) {
        int cuantas = 0;
        for(Ficha f: mesa) {
            if ((f.getA() == n) || (f.getB() == n)) {
                cuantas++;
            }
        }
        return cuantas;
    }
    @Override
    public String toString() {
        String s = "";
        for (Ficha f : mesa) {
            s += f;
        }
        return s;
    }
}
