elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: [Aporte] Mejores practicas en Java


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Mis malas combinaciones :(
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 [4] 5 6 Ir Abajo Respuesta Imprimir
Autor Tema: Mis malas combinaciones :(  (Leído 12,862 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.714



Ver Perfil
Re: Mis malas combinaciones :(
« Respuesta #30 en: 28 Agosto 2014, 13:49 »

Solucionado ;)

Bien, pero debes intentar interactuar lo más mínimo con la UI.

Código
  1. Combos.Count

Saludos


En línea


luis456


Desconectado Desconectado

Mensajes: 525



Ver Perfil
Re: Mis malas combinaciones :(
« Respuesta #31 en: 28 Agosto 2014, 14:18 »

Gracias Elektro por tus consejos :) ahora tengo otro reto (para mi jeje) no me respondas que voy a ver si lo hago ( si no lo logro, grito auxilio ) tengo este código que ya conoces de sobra jejej

Código
  1. Public Class Form1
  2.  
  3.    Dim maximum As Short = 99
  4.    Dim x As Integer = 0
  5.    Dim Número As Double
  6.    Private TextBoxes As TextBox() = {Nothing}
  7.    Private Result1 As Int32(), Result2 As Int32(), Result3 As Int32()
  8.    Private _textBox As Object
  9.    Private Property ListBox1Count As Integer
  10.    ReadOnly MAX As Integer = 99
  11.  
  12.  
  13.  
  14.    Private Property Calcular As Object
  15.  
  16.    Private Property TextBox(ByVal TextBoxCount As Short) As Object
  17.        Get
  18.            Return _textBox
  19.        End Get
  20.        Set(ByVal value As Object)
  21.            _textBox = value
  22.        End Set
  23.    End Property
  24.  
  25.    Public Sub solonumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs)
  26.        ' evitar letras
  27.        If Char.IsDigit(e.KeyChar) Then
  28.            e.Handled = False
  29.        ElseIf Char.IsControl(e.KeyChar) Then
  30.            e.Handled = False
  31.        ElseIf Char.IsSeparator(e.KeyChar) Then
  32.            e.Handled = False
  33.        Else
  34.            e.Handled = True
  35.        End If
  36.  
  37.    End Sub
  38.  
  39.  
  40.    ReadOnly Property Num1 As Int32
  41.        Get
  42.            Return CInt(TextBox1.Text)
  43.        End Get
  44.    End Property
  45.  
  46.    ReadOnly Property Num2 As Int32
  47.        Get
  48.            Return CInt(TextBox2.Text)
  49.        End Get
  50.    End Property
  51.    ReadOnly Property Num3 As Int32
  52.        Get
  53.            Return CInt(TextBox3.Text)
  54.        End Get
  55.    End Property
  56.  
  57.  
  58.    Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
  59.  
  60.  
  61.        Result1 = {Num1 + 1, Num1 + 2, Num1 + 4, Num1 + 6, Num1 - 4, Num1 - 1} _
  62.                  .Distinct().ToArray ' Elimino duplicados
  63.  
  64.        Result2 = {Num2 + 1, Num2 + 2, Num2 + 3, Num2 - 1, Num2 - 2, Num1 - 3} _
  65.                  .Distinct().ToArray ' Elimino duplicados
  66.  
  67.        Result3 = {Num3 - 1, Num3 - 2, Num3 - 3, Num3 + 2, Num3 + 3, Num3 + 5} _
  68.                  .Distinct().ToArray ' Elimino duplicados
  69.  
  70.  
  71.        Dim Rand As New Random
  72.        ' Concateno, y...
  73.        ' Elimino duplicados, y...
  74.        ' Selecciono los números inferiores a MAX, y...
  75.        ' Convierto los números mayores a MAX a números aleatorios entre 0 y MAX.
  76.        Dim Result As IEnumerable(Of Integer) =
  77.            (Result1.Concat(Result2).Concat(Result3)).
  78.            Distinct.
  79.            Select(Function(Value As Integer)
  80.                       Return If(Value < MAX, Value, Rand.Next(0, MAX))
  81.                   End Function)
  82.        ListBox1.Items.AddRange(Result.Cast(Of Object).ToArray)
  83.    End Sub
  84. End Class
  85.  



Y quiero integrarlo a este que funciona ya gracias a ti :) donde  a la variable " FixedValues " enviarle los datos de la variable " Result "  ya seguro me dara errores del tipo integer :) y esas cosas jejej


Código
  1. Imports System.IO
  2.  
  3. Public Class LuisClass_v2
  4.  
  5.    ReadOnly Randomizer As New Random
  6.  
  7.    ' Num ReadOnly FixedValues As Integer() =
  8.    ' Num   Enumerable.Range(1I, 49I).ToArray ' 1 to 30
  9.  
  10.    ReadOnly FixedValues As Integer() = {1, 5, 10, 15, 20, 25, 30, 33, 35, 38, 40, 45, 48}
  11.  
  12.    ReadOnly RandomValues As Integer() =
  13.        Enumerable.Range(FixedValues.First, FixedValues.Last).ToArray ' 1 to 30
  14.  
  15.    Dim Combo As List(Of Integer) = Nothing
  16.    Dim Combos As New List(Of List(Of Integer))
  17.  
  18.    Private Sub Test() Handles MyBase.Shown
  19.  
  20.        Dim IndexCounter As Integer = FixedValues.First ' 1
  21.        Dim LenCounter As Integer = 0I
  22.  
  23.        Const NumStep As Integer = 5I
  24.        Const NumLen As Integer = 6I
  25.  
  26.        Do Until IndexCounter > FixedValues.Last ' IndexCounter > 30
  27.  
  28.            Combo = New List(Of Integer)
  29.  
  30.            For Num As Integer = IndexCounter To (FixedValues.Count) Step NumStep
  31.  
  32.                LenCounter += 1I
  33.                Combo.Add(FixedValues(Num - 1I))
  34.  
  35.                If LenCounter >= NumLen Then
  36.                    Exit For
  37.                End If
  38.  
  39.            Next Num
  40.  
  41.  
  42.  
  43.            If LenCounter < NumLen Then ' If LenCounter < 10
  44.  
  45.                For RandomNum As Integer = 1I To (NumLen - LenCounter)
  46.  
  47.                    Dim n As Integer = Randomizer.Next(RandomValues.First, RandomValues.Last)
  48.  
  49.                    Do Until Not Combo.Contains(n)
  50.                        n = Randomizer.Next(RandomValues.First, RandomValues.Last)
  51.                    Loop
  52.  
  53.                    Combo.Add(n)
  54.  
  55.                Next ' RandomNum
  56.  
  57.            End If ' LenCounter < NumLen
  58.  
  59. #If DEBUG Then ' #Debug
  60.            Debug.WriteLine(String.Join(", ", Combo))
  61.            ' Stop
  62. #End If
  63.            Combo.Sort()
  64.            Combos.Add(Combo)
  65.            IndexCounter += 1I
  66.            LenCounter = 0I
  67.  
  68.        Loop ' IndexCounter >= FixedValues.Last
  69.  
  70.        ' ******** ordenamiento-------------
  71.        '  Dim values As Integer() = (From n As Integer In Combos Order By n Ascending).ToArray
  72.  
  73.        ' ********
  74.        ' Listbox:
  75.        ' ********
  76.        Combos.ForEach(Sub(comb As List(Of Integer))
  77.  
  78.                           ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox.
  79.                           ListBox1.Items.Add(String.Join(", ",
  80.                                                          From value As String In comb
  81.                                                          Select If(value.Length = 1I,
  82.                                                                    value.Insert(0I, "0"c),
  83.                                                                    value)))
  84.                           ListBox1.Sorted = True
  85.  
  86.  
  87.  
  88.                       End Sub)
  89.    End Sub ' Test
  90.  
  91.  
  92.  
  93.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  94.        Dim rutaFichero As String
  95.        Dim i As Integer
  96.  
  97.        rutaFichero = Path.Combine(Application.StartupPath, "contenido_listbox.txt")
  98.        Dim fichero As New IO.StreamWriter(rutaFichero)
  99.        For i = 0 To ListBox1.Items.Count - 1
  100.            fichero.WriteLine(ListBox1.Items(i))
  101.        Next
  102.        fichero.Close()
  103.    End Sub
  104.    ' contar que no ay repetidos
  105.  
  106.    Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
  107.  
  108.        Label1.Text = CStr(ListBox1.Items.Count)
  109.  
  110.        Dim query = From item As String In ListBox1.Items.Cast(Of String)() _
  111.                    Order By item _
  112.                    Group By item = item _
  113.                    Into Total = Group, Count() _
  114.                    Select Total
  115.  
  116.        Dim msg As New System.Text.StringBuilder()
  117.  
  118.        For Each item In query
  119.            msg.AppendLine(String.Format("Combinaciones {0} existen {1}", item(0), item.Count))
  120.        Next
  121.  
  122.        MessageBox.Show(msg.ToString())
  123.  
  124.    End Sub
  125.  
  126.  
  127. End Class
  128.  


Gracias por tu paciencia

Luis








En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
luis456


Desconectado Desconectado

Mensajes: 525



Ver Perfil
Re: Mis malas combinaciones :(
« Respuesta #32 en: 28 Agosto 2014, 14:55 »

jeje AUXILIO, No de verdad que no tengo nocion de como unir esto ;( ya sera que confundo mucho con tantas cosas a la ves

Cuando lo ejecuto de una ves me hace lo del segundo codigo y se supone que debe ser cuando se ejecute el primero y cambie los valores de " FixedValues " con los de  " Result "


Chapuza que tengo echa :)

Código
  1. Imports System.IO
  2. Public Class Form1
  3.  
  4.    Dim maximum As Short = 99
  5.    Dim x As Integer = 0
  6.    Dim Número As Double
  7.    Private TextBoxes As TextBox() = {Nothing}
  8.    Private Result1 As Int32(), Result2 As Int32(), Result3 As Int32()
  9.    Private _textBox As Object
  10.    Private Property ListBox1Count As Integer
  11.    ReadOnly MAX As Integer = 99
  12.    ReadOnly Randomizer As New Random
  13.    Dim Combo As List(Of Integer) = Nothing
  14.    Dim Combos As New List(Of List(Of Integer))
  15.  
  16.    ReadOnly FixedValues As Integer() = {1, 5, 10, 15, 20, 25, 30, 33, 35, 38, 40, 45, 48}
  17.    ReadOnly RandomValues As Integer() =
  18.        Enumerable.Range(FixedValues.First, FixedValues.Last).ToArray ' 1 to 30
  19.  
  20.  
  21.    Private Property Calcular As Object
  22.  
  23.    Private Property TextBox(ByVal TextBoxCount As Short) As Object
  24.        Get
  25.            Return _textBox
  26.        End Get
  27.        Set(ByVal value As Object)
  28.            _textBox = value
  29.        End Set
  30.    End Property
  31.  
  32.    Public Sub solonumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs)
  33.        ' evitar letras
  34.        If Char.IsDigit(e.KeyChar) Then
  35.            e.Handled = False
  36.        ElseIf Char.IsControl(e.KeyChar) Then
  37.            e.Handled = False
  38.        ElseIf Char.IsSeparator(e.KeyChar) Then
  39.            e.Handled = False
  40.        Else
  41.            e.Handled = True
  42.        End If
  43.  
  44.    End Sub
  45.  
  46.  
  47.    ReadOnly Property Num1 As Int32
  48.        Get
  49.            Return CInt(TextBox1.Text)
  50.        End Get
  51.    End Property
  52.  
  53.    ReadOnly Property Num2 As Int32
  54.        Get
  55.            Return CInt(TextBox2.Text)
  56.        End Get
  57.    End Property
  58.    ReadOnly Property Num3 As Int32
  59.        Get
  60.            Return CInt(TextBox3.Text)
  61.        End Get
  62.    End Property
  63.  
  64.  
  65.    Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
  66.  
  67.  
  68.        Result1 = {Num1 + 1, Num1 + 2, Num1 + 4, Num1 + 6, Num1 - 4, Num1 - 1} _
  69.                  .Distinct().ToArray ' Elimino duplicados
  70.  
  71.        Result2 = {Num2 + 1, Num2 + 2, Num2 + 3, Num2 - 1, Num2 - 2, Num1 - 3} _
  72.                  .Distinct().ToArray ' Elimino duplicados
  73.  
  74.        Result3 = {Num3 - 1, Num3 - 2, Num3 - 3, Num3 + 2, Num3 + 3, Num3 + 5} _
  75.                  .Distinct().ToArray ' Elimino duplicados
  76.  
  77.  
  78.        Dim Rand As New Random
  79.        ' Concateno, y...
  80.        ' Elimino duplicados, y...
  81.        ' Selecciono los números inferiores a MAX, y...
  82.        ' Convierto los números mayores a MAX a números aleatorios entre 0 y MAX.
  83.        Dim Result As IEnumerable(Of Integer) =
  84.            (Result1.Concat(Result2).Concat(Result3)).
  85.            Distinct.
  86.            Select(Function(Value As Integer)
  87.                       Return If(Value < MAX, Value, Rand.Next(0, MAX))
  88.                   End Function)
  89.        ListBox1.Items.AddRange(Result.Cast(Of Object).ToArray)
  90.        ' ******** ------------------------------------------------------------------
  91.  
  92.  
  93.        ' Num ReadOnly FixedValues As Integer() =
  94.        ' Num   Enumerable.Range(1I, 49I).ToArray ' 1 to 30
  95.  
  96.    End Sub
  97.    Private Sub Test() Handles MyBase.Shown
  98.  
  99.        Dim IndexCounter As Integer = FixedValues.First ' 1
  100.        Dim LenCounter As Integer = 0I
  101.  
  102.        Const NumStep As Integer = 5I
  103.        Const NumLen As Integer = 6I
  104.  
  105.        Do Until IndexCounter > FixedValues.Last ' IndexCounter > 30
  106.  
  107.            Combo = New List(Of Integer)
  108.  
  109.            For Num As Integer = IndexCounter To (FixedValues.Count) Step NumStep
  110.  
  111.                LenCounter += 1I
  112.                Combo.Add(FixedValues(Num - 1I))
  113.  
  114.                If LenCounter >= NumLen Then
  115.                    Exit For
  116.                End If
  117.  
  118.            Next Num
  119.  
  120.  
  121.  
  122.            If LenCounter < NumLen Then ' If LenCounter < 10
  123.  
  124.                For RandomNum As Integer = 1I To (NumLen - LenCounter)
  125.  
  126.                    Dim n As Integer = Randomizer.Next(RandomValues.First, RandomValues.Last)
  127.  
  128.                    Do Until Not Combo.Contains(n)
  129.                        n = Randomizer.Next(RandomValues.First, RandomValues.Last)
  130.                    Loop
  131.  
  132.                    Combo.Add(n)
  133.  
  134.                Next ' RandomNum
  135.  
  136.            End If ' LenCounter < NumLen
  137.  
  138. #If DEBUG Then ' #Debug
  139.            Debug.WriteLine(String.Join(", ", Combo))
  140.            ' Stop
  141. #End If
  142.            Combo.Sort()
  143.            Combos.Add(Combo)
  144.            IndexCounter += 1I
  145.            LenCounter = 0I
  146.  
  147.        Loop ' IndexCounter >= FixedValues.Last
  148.  
  149.        ' ******** ordenamiento-------------
  150.        '  Dim values As Integer() = (From n As Integer In Combos Order By n Ascending).ToArray
  151.  
  152.        ' ********
  153.        ' Listbox:
  154.        ' ********
  155.        Combos.ForEach(Sub(comb As List(Of Integer))
  156.  
  157.                           ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox.
  158.                           ListBox1.Items.Add(String.Join(", ",
  159.                                                          From value As String In comb
  160.                                                          Select If(value.Length = 1I,
  161.                                                                    value.Insert(0I, "0"c),
  162.                                                                    value)))
  163.                           ListBox1.Sorted = True
  164.  
  165.  
  166.  
  167.                       End Sub)
  168.    End Sub ' Test
  169.  
  170. End Class
  171.  
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.714



Ver Perfil
Re: Mis malas combinaciones :(
« Respuesta #33 en: 28 Agosto 2014, 20:38 »

Citar
Código
  1.    Private Sub Test() Handles MyBase.Shown

¿Eso no te dice nada?

Todo lo que hay en el interior de ese bloque se ejecuta en el evento Shown.

La finalidad (según me parece a mi tu intención) sería quitarlo de ahí para meterlo/adaptarlo en el bloque del sub Sumar.

Saludos

EDITO: por lo que dices, quizás pueda ser algo como esto:

Código
  1. Imports System.IO
  2. Public Class Form1
  3.  
  4.    Dim maximum As Short = 99
  5.    Dim x As Integer = 0
  6.    Dim Número As Double
  7.    Private TextBoxes As TextBox() = {Nothing}
  8.    Private Result1 As Int32(), Result2 As Int32(), Result3 As Int32()
  9.    Private _textBox As Object
  10.    Private Property ListBox1Count As Integer
  11.    ReadOnly MAX As Integer = 99
  12.    ReadOnly Randomizer As New Random
  13.    Dim Combo As List(Of Integer) = Nothing
  14.    Dim Combos As New List(Of List(Of Integer))
  15.  
  16.    Dim FixedValues As Integer() = Nothing
  17.    ReadOnly RandomValues As Integer() =
  18.        Enumerable.Range(0, 99).ToArray
  19.  
  20.  
  21.    Private Property Calcular As Object
  22.  
  23.    Private Property TextBoX(ByVal TextBoxCount As Short) As Object
  24.        Get
  25.            Return _textBox
  26.        End Get
  27.        Set(ByVal value As Object)
  28.            _textBox = value
  29.        End Set
  30.    End Property
  31.  
  32.    Public Sub solonumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs)
  33.        ' evitar letras
  34.        If Char.IsDigit(e.KeyChar) Then
  35.            e.Handled = False
  36.        ElseIf Char.IsControl(e.KeyChar) Then
  37.            e.Handled = False
  38.        ElseIf Char.IsSeparator(e.KeyChar) Then
  39.            e.Handled = False
  40.        Else
  41.            e.Handled = True
  42.        End If
  43.  
  44.    End Sub
  45.  
  46.  
  47.    ReadOnly Property Num1 As Int32
  48.        Get
  49.            Return CInt(TextBox1.Text)
  50.        End Get
  51.    End Property
  52.  
  53.    ReadOnly Property Num2 As Int32
  54.        Get
  55.            Return CInt(TextBox2.Text)
  56.        End Get
  57.    End Property
  58.    ReadOnly Property Num3 As Int32
  59.        Get
  60.            Return CInt(TextBox3.Text)
  61.        End Get
  62.    End Property
  63.  
  64.  
  65.    Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
  66.  
  67.        Result1 = {Num1 + 1, Num1 + 2, Num1 + 4, Num1 + 6, Num1 - 4, Num1 - 1} _
  68.                  .Distinct().ToArray ' Elimino duplicados
  69.  
  70.        Result2 = {Num2 + 1, Num2 + 2, Num2 + 3, Num2 - 1, Num2 - 2, Num1 - 3} _
  71.                  .Distinct().ToArray ' Elimino duplicados
  72.  
  73.        Result3 = {Num3 - 1, Num3 - 2, Num3 - 3, Num3 + 2, Num3 + 3, Num3 + 5} _
  74.                  .Distinct().ToArray ' Elimino duplicados
  75.  
  76.        Dim Rand As New Random
  77.        FixedValues =
  78.            (Result1.Concat(Result2).Concat(Result3)).
  79.            Distinct.
  80.            Select(Function(Value As Integer)
  81.                       Return If(Value < MAX, Value, Rand.Next(0, MAX))
  82.                   End Function)
  83.  
  84.        Dim IndexCounter As Integer = FixedValues.First ' 1
  85.        Dim LenCounter As Integer = 0I
  86.  
  87.        Const NumStep As Integer = 5I
  88.        Const NumLen As Integer = 6I
  89.  
  90.        Do Until IndexCounter > FixedValues.Last
  91.  
  92.            Combo = New List(Of Integer)
  93.  
  94.            For Num As Integer = IndexCounter To (FixedValues.Count) Step NumStep
  95.  
  96.                LenCounter += 1I
  97.                Combo.Add(FixedValues(Num - 1I))
  98.  
  99.                If LenCounter >= NumLen Then
  100.                    Exit For
  101.                End If
  102.  
  103.            Next Num
  104.  
  105.            If LenCounter < NumLen Then
  106.  
  107.                For RandomNum As Integer = 1I To (NumLen - LenCounter)
  108.  
  109.                    Dim n As Integer = Randomizer.Next(RandomValues.First, RandomValues.Last)
  110.  
  111.                    Do Until Not Combo.Contains(n)
  112.                        n = Randomizer.Next(RandomValues.First, RandomValues.Last)
  113.                    Loop
  114.  
  115.                    Combo.Add(n)
  116.  
  117.                Next ' RandomNum
  118.  
  119.            End If ' LenCounter < NumLen
  120.  
  121. #If DEBUG Then ' #Debug
  122.            Debug.WriteLine(String.Join(", ", Combo))
  123.            ' Stop
  124. #End If
  125.            Combo.Sort()
  126.            Combos.Add(Combo)
  127.            IndexCounter += 1I
  128.            LenCounter = 0I
  129.  
  130.        Loop ' IndexCounter >= FixedValues.Last
  131.  
  132.        ' ******** ordenamiento-------------
  133.        '  Dim values As Integer() = (From n As Integer In Combos Order By n Ascending).ToArray
  134.  
  135.        ' ********
  136.        ' Listbox:
  137.        ' ********
  138.        Combos.ForEach(Sub(comb As List(Of Integer))
  139.  
  140.                           ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox.
  141.                           ListBox1.Items.Add(String.Join(", ",
  142.                                                          From value As String In comb
  143.                                                          Select If(value.Length = 1I,
  144.                                                                    value.Insert(0I, "0"c),
  145.                                                                    value)))
  146.                           ListBox1.Sorted = True
  147.  
  148.  
  149.  
  150.                       End Sub)
  151.  
  152.    End Sub
  153.  
  154.  
  155. End Class

Cosas a tener en cuenta:

1. No le asignes un nombre reservado a una propiedad (TextBox), y asignale el Type de retorno adecuado (no Object)

2. Intenta organizar ese código, es un desastre visual, métodos en medio de propiedades y luego más propiedades, constantes dentro de métodos, algoritmos largos dentro del bloque de un event-handler (aunque bueno, estu último lo añadi yo xD pero ya habia algo ahí de antes), un desastre.

« Última modificación: 28 Agosto 2014, 21:02 por Eleкtro » En línea


luis456


Desconectado Desconectado

Mensajes: 525



Ver Perfil
Re: Mis malas combinaciones :(
« Respuesta #34 en: 29 Agosto 2014, 02:07 »

Bueno ya me vas cojiendo la idea :) y gracias por tu paciencia jeje.

Bien seguimos con los problemas ,y tienes razón en el desorden, es que tengo una mala maña , como quiero que funcione de una no presto atencion al orden y esa es una de mis fallas ;(

Bien lo ejecuto y me da este error en :

No se puede convertir un objeto de tipo 'WhereSelectEnumerableIterator`2[System.Int32,System.Int32]' al tipo 'System.Int32[]'



Código
  1. Dim Rand As New Random
  2.        FixedValues =
  3.            (Result1.Concat(Result2).Concat(Result3)).
  4.            Distinct.
  5.            Select(Function(Value As Integer)
  6.                       Return If(Value < MAX, Value, Rand.Next(0, MAX))
  7.                   End Function)
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.714



Ver Perfil
Re: Mis malas combinaciones :(
« Respuesta #35 en: 29 Agosto 2014, 11:47 »

Código
  1.        FixedValues =
  2.            (Result1.Concat(Result2).Concat(Result3)).
  3.            Distinct.
  4.            Select(Function(Value As Integer)
  5.                       Return If(Value < MAX, Value, Rand.Next(0, MAX))
  6.                   End Function).ToArray

PD: esto ponlo fuera del sub
Citar
Código
  1.        Dim Rand As New Random
En línea


luis456


Desconectado Desconectado

Mensajes: 525



Ver Perfil
Re: Mis malas combinaciones :(
« Respuesta #36 en: 29 Agosto 2014, 12:10 »

Hola
Hice lo que me pones pero me sigue dando error,


   " no se controlo InvalidCastException "

No se puede convertir un objeto de tipo 'WhereSelectEnumerableIterator`2[System.Int32,System.Int32]' al tipo 'System.Int32[]'.



sugerencias " Cuando realiza la conversion de un numero,el valor debe ser un numero menor que intinito "
" asegurese que el tipo de origen se puede convertir en el tipo de destino"


SOLUCIONADO " Cada dia me pongo mas ciego y leo mal jejeje )


gracias Elektro

Luis



« Última modificación: 29 Agosto 2014, 12:32 por luis456 » En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
luis456


Desconectado Desconectado

Mensajes: 525



Ver Perfil
Re: Mis malas combinaciones :(
« Respuesta #37 en: 29 Agosto 2014, 15:19 »

otro rollo jejej

Trasteando para aumentar los números ahora me encuentro este error cuando ejecuto el programa pero lo curioso es que con algunos numeros que introduzco no lo hace y variando estos números ( imput) si me sale el error ? si entiendo que se sale de la capacidad del la variable pero lo que no entiendo donde aumentar esta capacidad


 " Índice fuera de los límites de la matriz "



Código
  1. For Num As Integer = IndexCounter To (FixedValues.Count) Step NumStep
  2.  
  3.                LenCounter += 1I
  4.                Combo.Add(FixedValues(Num - 1I)) '<-------Índice fuera de los límites de la matriz.
  5.                If LenCounter >= NumLen Then
  6.                    Exit For
  7.                End If
  8.  
  9.            Next Num



Luis
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.714



Ver Perfil
Re: Mis malas combinaciones :(
« Respuesta #38 en: 29 Agosto 2014, 15:56 »

Los índices empiezan por Cero en .Net, así que debes descontarle un 1 a FixedValues.Count (no debes aumentar nada)

Código
  1. For Num As Integer = IndexCounter To (FixedValues.Count - 1I) Step NumStep

Supongo que eso debería solucionar el problema, quizás haya más cosas a tener en cuenta (IndexCounter, NumStep), pero de momento prueba lo que te dije a ver si te da el resultado que tu esperas.

Saludos!
« Última modificación: 29 Agosto 2014, 15:58 por Eleкtro » En línea


luis456


Desconectado Desconectado

Mensajes: 525



Ver Perfil
Re: Mis malas combinaciones :(
« Respuesta #39 en: 29 Agosto 2014, 16:42 »

Sigue igual :(

sera porque la función que estoy empleando no tiene un largo especifico ? ya que como me da 50 números unas veces otras  también puede dar 80 o sea que los números a combinar nunca son del mismo largo o cantidades ..

Edito) me he dado cuenta que si colocoal principio en el imput números desde el 01 hasta el 09 me produce el error y a partir del numero 10 no lo hace ???

 " Índice fuera de los límites de la matriz "

Luis
« Última modificación: 29 Agosto 2014, 16:54 por luis456 » En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Páginas: 1 2 3 [4] 5 6 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Instrucciones malas :P
Ingeniería Inversa
x64core 3 1,870 Último mensaje 7 Diciembre 2011, 16:45
por Flamer
Combinaciones con subrangos
.NET (C#, VB.NET, ASP)
luis456 1 727 Último mensaje 25 Noviembre 2014, 12:20
por Eleкtro
Usuarios de Yelp bombardean pizzería antigay con malas reseñas « 1 2 3 4 5 »
Noticias
wolfbcn 47 5,678 Último mensaje 5 Abril 2015, 03:10
por MinusFour
Mas combinaciones condicionadas
.NET (C#, VB.NET, ASP)
luis456 0 552 Último mensaje 5 Abril 2016, 11:42
por luis456
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines