package riskuhujava;
import java.io.BufferedReader;
import java.io.IOException;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 *

/**
 *
 * @author mari
 */

import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException, InterruptedException {
        
        Partida part;
        ArrayList<Jugador> jugadores;
        ArrayList<Dado> dadodef=new ArrayList();
        ArrayList<Dado> dadoatq=new ArrayList();
        Dado dao=new Dado();
        Risk juego=new Risk();
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int resultado=0,numero=0;
        int posicion=0;
        int numjugador = 0;
        int resAtaque=0,resDef=0;
        boolean correcto=false,terminar=false;
        
        
        part=juego.getPartida();
        jugadores=part.getJugador();
        dadodef=juego.getDadoDef();
        dadoatq=juego.getDadoAtq();
        Jugador jugadorAtacante;
        Jugador jugadorAtacado;
        
        Iterator itj=jugadores.iterator();
        Iterator itda=dadoatq.iterator();
        Iterator itdf=dadodef.iterator();
        int numjugadores=part.getnumJugadores();
        Jugador[] tjugadores=new Jugador[numjugadores];
        
        int i=1;
        while (itj.hasNext()){
            System.out.println("\nJugador "+i+" pulse INTRO para tirar el dado...");
            System.in.read();
            System.out.println("JUGADOR "+i+" TIRANDO...");
            Thread.sleep(1000);
            dao.tirarDado();
            resultado=dao.getvalorCara();
            System.out.println("El Jugador "+i+" ha sacado un "+resultado);
            
            if (resultado>numero){
                numero=resultado;
                posicion=i;
                tjugadores[i-1]=(Jugador) itj.next();
            }
            else tjugadores[i-1]=(Jugador) itj.next();
            i++;
        }
        
        i=i-1;
        
        while (terminar==false)
        {
        jugadorAtacante=tjugadores[posicion-1];
        System.out.println("\nEl turno lo tiene el jugador "+posicion);
        
        correcto=false;
        while (correcto==false)
        {
            System.out.println("\n¿A qué jugador desea atacar[1-"+i+"]?: ");
            numjugador = Integer.parseInt(in.readLine( ));
            if (numjugador==posicion)
                System.out.println("No se puede atacar a usted mismo.");
            else{
                correcto=true;
                jugadorAtacado=tjugadores[numjugador-1];
            }
        }
        System.out.println("\nJugador "+posicion+" pulse INTRO para tirar dados de Ataque.");
        System.in.read();
        System.out.println("Jugador Atacante tirando dados de Ataque...");
        Thread.sleep(2000);
        while (itda.hasNext())
        {
            dao=(Dado) itda.next();
            dao.tirarDado();
            resAtaque=resAtaque+dao.getvalorCara();
            
        }
        System.out.println("El jugador "+posicion+" ha sacado un "+resAtaque);
        System.out.println("Jugador "+numjugador+" pulse INTRO para tirar dados de Defensa");
        System.in.read();
        System.out.println("Jugador Atacado tirando dados de Defensa...");
        Thread.sleep(2000);
        while (itdf.hasNext())
        {
            dao=(Dado) itdf.next();
            dao.tirarDado();
            resDef=resDef+dao.getvalorCara();
        }
        System.out.println("\nEl Atacado ha sacado un "+resDef);
        if (resAtaque>resDef)
        {
            System.out.println("\nEnhorabuena jugador Atacante, usted ha ganado");
        }
        else
        {
            System.out.println("\nEnhorabuena jugador Atacado, usted ha ganado");
        }
        if(posicion==numjugadores)
        {
            posicion=1;
        }
        else
            posicion++;
        System.out.println("Desea seguir jugando (1:si, 2:no)?: ");
        int fin = Integer.parseInt(in.readLine( ));
        if(fin==2)
            terminar=true;
        
        }//fin while
        
        
    }

}
