import java.util.ArrayList; 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.56DFB240-0E69-04F4-1AAC-CFB205228FD0]
// </editor-fold> 
public class Risk {

    private int turno;
    private int numJugadores;
    private int valorDado;
    
    private ArrayList<Dado> dados; //eliminar cuando se usen los otros dados
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.D63CD9DE-0CAE-B078-5759-954AE8ED2994]
    // </editor-fold> 
    private ArrayList<Dado> mDadoDef;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.458CF647-942F-97DD-7CD7-F334B284F315]
    // </editor-fold> 
    private ArrayList<Dado> mDadoAtq;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.B4EBC72D-C3BE-2909-FC40-79F309383001]
    // </editor-fold> 
    private Carta mCarta;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.4CCFBBFA-58A9-1042-5189-F07882197C2A]
    // </editor-fold> 
    private Partida mPartida;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.64A3697D-ABAF-BD50-B504-58CD719DE2A0]
    // </editor-fold> 
    private Tablero mTablero;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.E5801465-B2E0-A2F3-CAE5-B8C16D175F01]
    // </editor-fold> 
    public Risk () { //modificar cuando se usen mas dados
        // creamos los dados
        dados = new ArrayList(); 
        dados.add(new Dado());
        
        setNumJugadores(4);
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.86EB8EA5-42F4-AB76-3ADD-33649FE8776E]
    // </editor-fold> 
    public Carta getCarta () {
        return mCarta;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.0690E2D8-873A-6440-AFFA-430500A931B3]
    // </editor-fold> 
    /*public void setCarta (ArrayList<Carta> val) {
        this.mCarta = val;
    }
    */
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.2F58ADF7-B8AB-D4C8-8C27-BC3CBC471D1E]
    // </editor-fold> 
    public ArrayList<Dado> getDadoAtq () {
        return mDadoAtq;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.5BB584B0-6967-BFD9-027D-E68740FB66ED]
    // </editor-fold> 
    public void setDadoAtq (ArrayList<Dado> val) {
        this.mDadoAtq = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.0C71D5BF-C010-BF5C-5907-D5C1CB158BD2]
    // </editor-fold> 
    public ArrayList<Dado> getDadoDef () {
        return mDadoDef;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.788AD50F-46E8-E525-83E6-DA7D298CBD67]
    // </editor-fold> 
    public void setDadoDef (ArrayList<Dado> val) {
        this.mDadoDef = val;
    }

    public int getValorDado() {
        return valorDado;
    }

    public void setValorDado(int val) {
        this.valorDado = val;
    }
    
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.5CA447B5-3FBE-2D70-CCD8-7277CEF8E296]
    // </editor-fold> 
    public Partida getPartida () {
        return mPartida;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.A3DE339B-F1F9-752B-5530-56D7AB2E922A]
    // </editor-fold> 
    /*public void setPartida (Partida val) {
        return mPartida;
    }
    */
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.EBFFAE04-E90B-3D3D-5344-004A6BC0AE1B]
    // </editor-fold> 
    public Tablero getTablero () {
        return mTablero;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.D40B70B7-4414-6FFB-DE81-08CD6A5667BC]
    // </editor-fold> 
    public void setTablero (Tablero val) {
        this.mTablero = val;
    }
    
    public int getNumJugadores() {
        return numJugadores;
    }

    public void setNumJugadores(int val) {
        this.numJugadores = val;
    }
    
    public void cambiarTurno() {
        turno = (turno + 1) % numJugadores;
        System.out.println("CAMBIO DE TURNO: Va el jugador " + (turno+1));
    }
    
    public void tirarDados() {
        dados.get(0).lanzarDado();
        valorDado = dados.get(0).getValorCara();
    }
    
    public void jugar() {
            // tirar dados
            System.out.println("Es el turno del Jugador " + (turno+1) + ".");
            
            tirarDados();
            System.out.println("   Tira el dado y saca un " + valorDado);
            
            System.out.println("         Pulsa ENTER para cambiar de jugador...");
            BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
            try {
                int ch = stdin.read();
            } catch (IOException ex) { }
            
            cambiarTurno();
    }
        
    public static void main(String[] args) {
        Risk juego = new Risk();
        int i = 0;
        
        System.out.println("Partida de 10 rondas");
        
        do {
            juego.jugar();
            i++;
        } while (i < 10);
        System.out.println("Fin del juego");
    }
}

