
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Kilpailu {
    private ArrayList<Makihyppaaja> hyppaajat;
    private String nimi;
    private static Scanner lukija = new Scanner(System.in);

    public Kilpailu(String nimi) {
        this.nimi = nimi;
        hyppaajat = new ArrayList<Makihyppaaja>();

        hyppaajat.add(new Makihyppaaja("Nykänen"));
        hyppaajat.add(new Makihyppaaja("Ahonen"));
        hyppaajat.add(new Makihyppaaja("Olli"));
        hyppaajat.add(new Makihyppaaja("Amman"));

//        System.out.print("Hyppääjä: ");
//        String hh = lukija.nextLine();
//        while ( !hh.equals("") ){
//            System.out.print("Hyppääjä: ");
//            hyppaajat.add( new Makihyppaaja(hh) );
//            hh = lukija.nextLine();
//        }
    }

    private void tyyli(Makihyppaaja h, int kierros){
        System.out.print("  tyylipisteet ");
        System.out.print(h.getTyyli(kierros)[0] + " ");
        System.out.print(h.getTyyli(kierros)[1] + " ");
        System.out.print(h.getTyyli(kierros)[2] + " ");
        System.out.print(h.getTyyli(kierros)[3] + " ");
        System.out.println(h.getTyyli(kierros)[4]);
    }

    private void kierros(int kierros){
        for( Makihyppaaja h : hyppaajat ){
            int hyppy = h.hyppaa(kierros);
            System.out.print(" "+h.getNimi()+" "+kierros+". kierroksella ");
            System.out.println(hyppy+" metriä");
            System.out.print("  tyylipisteet ");
            tyyli(h,1);
        }
    }

    private void kierros2(){
        for( int i=hyppaajat.size()-1; i>=0; i-- ){
            int hyppy2 = hyppaajat.get(i).hyppaa(2);
            System.out.print(" "+hyppaajat.get(i).getNimi()+" 2. kierroksella ");
            System.out.println(hyppy2+" metriä");
            System.out.print("  tyylipisteet ");
            tyyli(hyppaajat.get(i),2);
        }
    }

    private void tulokset() {
        int i = 1;
        for( Makihyppaaja h : hyppaajat ){
            System.out.println(i+". "+h);
            i++;
        }
    }

    public void kayKilpailu(){
        Collections.shuffle(hyppaajat);

        System.out.println("\n"+nimi+"\n1. kierroksen hyppyjärjestys: ");
        for( Makihyppaaja h : hyppaajat ){
            System.out.println(" "+h);
        }

        System.out.println("\nensimmäinen kierros:");
        kierros(1);

        Collections.sort(hyppaajat);

        System.out.println("\nensimmäisen kierroksen tulokset:");
        tulokset();

        Collections.reverse(hyppaajat);
        System.out.println("\ntoinen kierros:");
        kierros(2);

        Collections.sort(hyppaajat);

        System.out.println("\n"+nimi+" lopputulokset:");
        tulokset();

    }


}
