/*
 A idéia do programa e tirar números aleatóriamente do globo de números e colocá - lo no globo de apostas
 a posição que foi retirado o número, recebe zero e depois recebe o valor da ultima posição do vetor.
 Diminui o tamanho do vetor em 1.


 */

public class MegasenaDaVirada3 {

    int Ultima_Posicao = 59;
    int Posicao_atual = 0;

    //int []nota new int[70];
    int[] Globo_Numeros = new int[60];
    int[] Globo_Apostas = new int[60];

    //Método construtor
    public MegasenaDaVirada3() {
        int i = 0;
        while (i < 171215)
        {
              Carrega_Globo_Numeros();
              Carrega_Globo_Apostas();
            //Imprime_Vetor(Globo_Apostas);
        //Imprime os jogos
              Metodo_Imprime_Apostas(Globo_Apostas);
              System.out.println("Executando novo método para geração das apostas");
              Metodo_Gera_Aposta_Total();
              i = i + 1;
        }

    }

    //Método para carregar o vator primário ou glodo de números
    public void Metodo_Gera_Aposta_Total()
    {
           int  contador = 0;
           while(contador <= 500)
           {
                    int i = 0;
                    while(i < 60)
                    {
                        Globo_Numeros[i] =  Globo_Apostas[i];
                        i = i + 1;

                    }
                    Carrega_Globo_Apostas();
                    contador = contador + 1;
                    Metodo_Imprime_Apostas(Globo_Apostas);

           }



    }

    public int[] Carrega_Globo_Numeros() {
        //System.out.println(" IMPRIME VETOR ORIGINAL ");
        int i = 0;
        while (i < 60) {
            Globo_Numeros[i] = i + 1;
            i = i + 1;
        }
        System.out.println(" //////////////////////////////////////////////////////");
        return Globo_Numeros;

    }

    public void Carrega_Globo_Apostas() {
        int Contador = 0;
        while (Contador < 60) {
            Posicao_atual = Retorna_Numero_Aleatorio(Ultima_Posicao);
            Globo_Apostas[Contador] = Globo_Numeros[Posicao_atual];  //Tira um numero qualquer e coloca na sequencia aleatória
            Globo_Numeros[Posicao_atual] = Globo_Numeros[0]; //Pega o numero que esta na primeira posição e coloca na posição atual
            Globo_Numeros[0] = Globo_Numeros[Ultima_Posicao];
            //System.out.println(" - "+ Globo_Apostas [Contador] );
            Ultima_Posicao = Ultima_Posicao - 1;
            Contador = Contador + 1;
        }

    }

    //Método para gerar um número aleatorio

    public int Retorna_Numero_Aleatorio(int qtde_Numeros) {
        int i = 1 + (int) (Math.random() * qtde_Numeros);
        return i;
    }

    //Método imprime as apostas

    public void Metodo_Imprime_Apostas(int Numeros[]) {
        int aux = 0;
        System.out.println("Imprimindo apostas ");

        while (aux < 60) {

            if ((aux) % 6 == 0) {
                System.out.println("");
            }
            System.out.print(" - " + Numeros[aux]);
            aux = aux + 1;
        }
    }

    //Método imprime Globo de Numeros

    public void Imprime_Vetor(int Vetor[]) {
        int Tamanho_do_Vetor = Vetor.length;
        int aux = 0;
        System.out.println("" + aux);
        while (aux < Tamanho_do_Vetor) {
            System.out.println("" + Vetor[aux]);
            aux = aux + 1;
        }
    }
    /*
     public void Imprime_apostas()
     {
     int aux = 0;
     while (aux < 60)
     {
     System.out.println(""+ Globo_Apostas [aux]);
     aux = aux + 1;
     }
     }
     */

    //Método executor
    public static void main(String args[]) {
        new MegasenaDaVirada3();
    }

}