private static Hands.Type[][] generarMatrizType()
 {
     Hands.Type[][] matriz = new Hands.Type[4][];
     matriz[0]    = new Hands.Type[1];
     matriz[1]    = new Hands.Type[2];
     matriz[2]    = new Hands.Type[2];
     matriz[3]    = new Hands.Type[1];
     matriz[0][0] = Hands.Type.HIGH_CARD;
     matriz[1][0] = Hands.Type.ONE_PAIR;
     matriz[1][1] = Hands.Type.TWO_PAIR;
     matriz[2][0] = Hands.Type.THREE_OF_A_KIND;
     matriz[2][1] = Hands.Type.FULL_HOUSE;
     matriz[3][0] = Hands.Type.FOUR_OF_A_KIND;
     return(matriz);
 }
        private static int encodeValue(Hands.Type type, int[][] indexes)
        {
            int result = Array.IndexOf(Enum.GetValues(type.GetType()), type);
            int i = 0, j = 0;

            while (j < Hands.CARDS)
            {
                for (int k = 0; k < indexes[i][REPEATS_INDEX]; k++)
                {
                    result = result * ENCODE_BASE + indexes[i][RANK_INDEX];
                    j++;
                }
                i++;
            }
            return(result);
        }