package riskuhujava;

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

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
import java.util.Iterator;
// #[regen=yes,id=DCE.2287D49B-337D-DA54-74D1-A1B07D0AE175]
// </editor-fold> 
public class Partida {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.C5411EB2-ABFB-A62B-1880-A2F5810FAF4B]
    // </editor-fold> 
    private Tablero mTablero=new Tablero();
    
    //El número de jugadores debe estar entre 2 y 8
    private int maxJugadores=8;
    private int minJugadores=2;
    
    //variable que almacena el número de jugadores de una partida
    private int numJugadores=0;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.E0748266-510E-2F00-7F2E-45E0D22DADF4]
    // </editor-fold> 
    private ArrayList<Jugador> mJugador=new ArrayList();

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.16217FEA-8A19-5F35-7961-9B94F311ACE0]
    // </editor-fold> 
    private ArrayList<Rondas> mRondas=new ArrayList();

    public Partida () throws java.io.IOException{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        boolean correcto=false;
        
         System.out.println("..................Empieza la partida...............");
        System.out.println("Empezará la partida el jugador que al tirar un dado saque el mayor número.");
        while (correcto==false)
        {
            System.out.println("Introduzca número de jugadores (2-8): ");
            numJugadores = Integer.parseInt(in.readLine( ));
            if ((numJugadores>=minJugadores) && (numJugadores<=maxJugadores))
                correcto=true;
            else
                System.out.println("\nIntroduzca un número de jugadores correcto.1");
        }
            System.out.println("EL NUMERO DE JUGADORES ES " + " : " + numJugadores );
        
        for (int i=0;i<numJugadores;i++){
            Jugador j=new Jugador(i+1);
            //Asigno número inicial de tropas según el número de jugadores
            if (numJugadores==2)
                j.setEjercitosPendientes(40);   //Si hay 2 jugadores se reparten 40 tropas a cada uno
            if (numJugadores==3)
                j.setEjercitosPendientes(35);
            if (numJugadores==4)
                j.setEjercitosPendientes(30);
            if (numJugadores==5)
                j.setEjercitosPendientes(25);
            if (numJugadores==6)
                j.setEjercitosPendientes(20);
            if (numJugadores==7)
                j.setEjercitosPendientes(15);
            if (numJugadores==8)
                j.setEjercitosPendientes(10);
            
            mJugador.add(j);
        }
       
       //Repartimos los 42 territorios entre los jugadores
       Jugador[] tjugador=new Jugador[numJugadores];
       Iterator itj=mJugador.iterator();
       int j=0;
       
       //metemos todos los jugadores en una tabla
       while (itj.hasNext()){
           tjugador[j]=(Jugador) itj.next();
           j++;
       }
       
       int num=1;
       ArrayList<Jugador> jugadores=new ArrayList();
       ArrayList<Territorio> territorios;
       territorios=mTablero.getTerritorio();//Lista de Territorios
       Iterator itt=territorios.iterator();
       
       while (itt.hasNext()){
           if (num==numJugadores+1) num=1;
           tjugador[num].addTerritorio((Territorio) itt.next());
           num++;
        }
       
       for(int i=0;i<numJugadores;i++)
            jugadores.add(tjugador[i]);
       
       mJugador=jugadores;
         
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=y,regenBody=yeses,id=DCE.BC332810-BAA9-C336-AF84-54BEECC06F75]
    // </editor-fold> 
    public int getnumJugadores () {
        return numJugadores;
    }
    
    public ArrayList<Jugador> getJugador () {
        return mJugador;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=y,regenBody=yeses,id=DCE.164C3ADF-760E-7608-8EC5-5B466A67B427]
    // </editor-fold> 
    public void setJugador (ArrayList<Jugador> val) {
        mJugador=val;
    }
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=y,regenBody=yeses,id=DCE.238B44C3-4626-321B-F5DF-887A92805519]
    // </editor-fold> 
    public ArrayList<Rondas> getRondas () {
        return mRondas;
   
    }
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=y,regenBody=yeses,id=DCE.0F96D9DA-E91A-9E65-BF0C-5841FECC99FF]
    // </editor-fold> 
    public void setRondas (Rondas val) {
        mRondas.add(val);
    }
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=y,regenBody=yeses,id=DCE.B3E2A2BC-874D-C1EB-814C-6D406A2C5C97]
    // </editor-fold> 
    public Tablero getTablero () {
        return null;
   
    }
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=y,regenBody=yeses,id=DCE.EB5AFF9D-BE32-2A9B-C308-3E2F8A0B9377]
    // </editor-fold> 
    public void setTablero (Tablero val) {
        mTablero=val;
    }
}

