Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - luis456

#341
Al ataque de nuevo jeje bueno ya ustedes saben como se frustra uno cuando no se logra hacer funcionar algo, vueltas y vueltas y nada tengo el siguiente programa que funciona bien hasta llegar a la función de combinar los numeros pero es un código de basic que quiero implementar pero no soy capaz ( como siempre)


Código (vbnet) [Seleccionar]
Public Class Form1
    Dim maximum As Short = 99
    Dim x As Integer = 0
    Dim Número As Double
    Private TextBoxes As TextBox() = {Nothing}
    Private Result1 As Int32(), Result2 As Int32(), Result3 As Int32()
    Private _textBox As Object
    Private Property ListBox1Count As Integer
    ReadOnly MAX As Integer = 99

    Dim auxiliar As Integer
    Dim auxiliar1 As Integer

    Dim auxiliar2 As String
    Dim auxiliar3 As String
    Dim anterior As String

    Dim recorrer As Integer
    Dim recorrer1 As Integer
    Dim recorrer2 As Integer
    Dim recorrer3 As Integer

    Private Property Calcular As Object

    Private Property TextBox(ByVal TextBoxCount As Short) As Object
        Get
            Return _textBox
        End Get
        Set(ByVal value As Object)
            _textBox = value
        End Set
    End Property

    Public Sub solonumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs)
        ' evitar letras
        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If

    End Sub


    ReadOnly Property Num1 As Int32
        Get
            Return CInt(TextBox1.Text)
        End Get
    End Property

    ReadOnly Property Num2 As Int32
        Get
            Return CInt(TextBox2.Text)
        End Get
    End Property
    ReadOnly Property Num3 As Int32
        Get
            Return CInt(TextBox3.Text)
        End Get
    End Property
   

    Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click


        Result1 = {Num1 + 1, Num1 + 2, Num1 + 4, Num1 + 6, Num1 - 4, Num1 - 1} _
                  .Distinct().ToArray ' Elimino duplicados

        Result2 = {Num2 + 1, Num2 + 2, Num2 + 3, Num2 - 1, Num2 - 2, Num1 - 3} _
                  .Distinct().ToArray ' Elimino duplicados

        Result3 = {Num3 - 1, Num3 - 2, Num3 - 3, Num3 + 2, Num3 + 3, Num3 + 5} _
                  .Distinct().ToArray ' Elimino duplicados

       
        Dim Rand As New Random
        ' Concateno, y...
        ' Elimino duplicados, y...
        ' Selecciono los números inferiores a MAX, y...
        ' Convierto los números mayores a MAX a números aleatorios entre 0 y MAX.
        Dim Result As IEnumerable(Of Integer) =
            (Result1.Concat(Result2).Concat(Result3)).
            Distinct.
            Select(Function(Value As Integer)
                       Return If(Value < MAX, Value, Rand.Next(0, MAX))
                   End Function)


        ListBox1.Items.AddRange(Result.Cast(Of Object).ToArray)
       
        ' Result2---------------------------------------------------------
        Dim Rand2 As New Random
        ' Concateno, y...
        ' Elimino duplicados, y...
        ' Selecciono los números inferiores a MAX, y...
        ' Convierto los números mayores a MAX a números aleatorios entre 0 y MAX.
        Dim Result22 As IEnumerable(Of Integer) =
            (Result1).
            Distinct.
            Select(Function(Value As Integer)
                       Return If(Value < MAX, Value, Rand.Next(0, MAX))
                   End Function)



        ListBox2.Items.AddRange(Result22.Cast(Of Object).ToArray)



        Dim Rand22 As New Random
        ' Concateno, y...
        ' Elimino duplicados, y...
        ' Selecciono los números inferiores a MAX, y...
        ' Convierto los números mayores a MAX a números aleatorios entre 0 y MAX.
        Dim Result222 As IEnumerable(Of Integer) =
            (Result2).
            Distinct.
            Select(Function(Value As Integer)
                       Return If(Value < MAX, Value, Rand.Next(0, MAX))
                   End Function)

        ListBox3.Items.AddRange(Result222.Cast(Of Object).ToArray)


       
       
    End Sub
    ' funcion combinar la variable " resul " que contiene la cantidad de numeros a combinar (no funciona)
    ' esto es de basic pero es para cojer la idea :) no se como hacerlo en net

     For recorrer = 1 To Len(resul)
            auxiliar = Mid(palabra, recorrer, 1)
            For recorrer1 = 1 To Len(resul)
                auxiliar1 = Mid(palabra, recorrer1, 1)
                For recorrer2 = 1 To Len(resul)
                    auxiliar2 = Mid(palabra, recorrer2, 1)
                    For recorrer3 = 1 To Len(resul)
                        auxiliar3 = Mid(resul, recorrer3, 1)
                        If anterior <> auxiliar3 Then

                            Print(auxiliar & auxiliar1 & auxiliar2 & auxiliar3) <------------mostrar esto en un lixbox

                        End If
                        anterior = auxiliar3
                    Next
                Next
            Next
        Next
    End Sub



    '--------------------------- limpiar texboxes
    Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        For Each obj As Control In Me.Controls
            If (TypeOf obj Is TextBox) Then
                obj.Text = ""
            End If
            If (TypeOf obj Is GroupBox) Then
                For Each caja As Control In obj.Controls
                    If (TypeOf caja Is TextBox) Then
                        caja.Text = ""
                    End If
                Next
            End If

            ListBox1.Items.Clear()
            ListBox2.Items.Clear()
            ListBox3.Items.Clear()
           

        Next
    End Sub


End Class
#342
Bueno ya me enrede de nuevo  :-( de verdad que lo de estas combinaciones me esta poniendo tarambana jejejje

Ahora trasteando he conseguido esto que según lo que veo me podría servir mucho ya que puedo jugar con las posiciones ahora creo que esto es para texto y no se si me sirve numerico y como evitaria los repetidos

   deshaceCombina(0)=mid(cadena,1,1)
   deshaceCombina(1)=mid(cadena,2,1)
   deshaceCombina(2)=mid(cadena,3,1)
   deshaceCombina(3)=mid(cadena,4,1)
#343
Bueno unos días después de estar fuera vuelvo al ataque jejej con el tema de las combinaciones e echo a pie este código, pero ya me perdí de tanto escribir pero es la idea de lo de las combinaciones mas  o menos lo que me gustaria es poder simplificarlo.

Código (vbnet) [Seleccionar]
Public Class Form1


    Dim maximum As Short = 99
    Dim Número As Double
    Private TextBoxes As TextBox() = {Nothing}


    Private r1 = 5
    Private r2 = 15
    Private r3 = 25
    Private r4 = 35
    Private r5 = 40
    Private r6 = 45

    Private ar1 = 6
    Private br2 = 10
    Private cr3 = 20
    Private dr4 = 30
    Private er5 = 40
    Private sr6 = 4



    Private _textBox As Object
    Private Property ListBox1Count As Integer
    ReadOnly MAX As Integer = 8
    Dim Result22 As Integer
    Dim Counter, Counter2 As Integer
    Dim myLabelArray(6) As Label
    Private Sub Limpiar_Cajas(ByVal f As Form)
        ' recorrer todos los controles del formulario indicado 
        For Each c As Control In f.Controls
            If TypeOf c Is TextBox Then
                c.Text = "" ' eliminar el texto 
            End If
        Next
    End Sub

    Private Sub Button4_Click( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button4.Click
        ' pasar el formulario 
        Call Limpiar_Cajas(Me)


    End Sub

   

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
        'funcion para introducir manualmente r1 = Val(TextBox1.Text)
    End Sub



    'funcion unir o formar combinaciones
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ListBox1.Items.Add(TextBox1.Text)
        ListBox1.Items.Add(TextBox6.Text)
        ListBox1.Items.Add(TextBox7.Text)
        ListBox1.Items.Add(TextBox8.Text)
        ListBox1.Items.Add(TextBox10.Text)
        ListBox1.Items.Add(TextBox12.Text)
        'funcion unir o formar combinaciones segundo lisb
        ListBox2.Items.Add(TextBox1.Text)
        ListBox2.Items.Add(TextBox2.Text)
        ListBox2.Items.Add(TextBox4.Text)
        ListBox2.Items.Add(TextBox31.Text)
        ListBox2.Items.Add(TextBox33.Text)
        ListBox2.Items.Add(TextBox36.Text)
        'funcion unir o formar combinaciones terce lisb
        ListBox3.Items.Add(TextBox1.Text)
        ListBox3.Items.Add(TextBox2.Text)
        ListBox3.Items.Add(TextBox4.Text)
        ListBox3.Items.Add(TextBox6.Text)
        ListBox3.Items.Add(TextBox7.Text)
        ListBox3.Items.Add(TextBox8.Text)
        'funcion unir o formar combinaciones cuarto lisb
        ListBox4.Items.Add(TextBox1.Text)
        ListBox4.Items.Add(TextBox2.Text)
        ListBox4.Items.Add(TextBox4.Text)
        ListBox4.Items.Add(TextBox13.Text)
        ListBox4.Items.Add(TextBox14.Text)
        ListBox4.Items.Add(TextBox15.Text)
        'funcion unir o formar combinaciones quinto lisb
        ListBox5.Items.Add(TextBox1.Text)
        ListBox5.Items.Add(TextBox5.Text)
        ListBox5.Items.Add(TextBox14.Text)
        ListBox5.Items.Add(TextBox15.Text)
        ListBox5.Items.Add(TextBox34.Text)
        ListBox5.Items.Add(TextBox35.Text)
        'funcion unir o formar combinaciones sesta lisb
        ListBox6.Items.Add(TextBox2.Text)
        ListBox6.Items.Add(TextBox5.Text)
        ListBox6.Items.Add(TextBox13.Text)
        ListBox6.Items.Add(TextBox14.Text)
        ListBox6.Items.Add(TextBox15.Text)
        ListBox6.Items.Add(TextBox33.Text)
        'funcion unir o formar combinaciones 7o lisb
        ListBox7.Items.Add(TextBox6.Text)
        ListBox7.Items.Add(TextBox5.Text)
        ListBox7.Items.Add(TextBox2.Text)
        ListBox7.Items.Add(TextBox10.Text)
        ListBox7.Items.Add(TextBox11.Text)
        ListBox7.Items.Add(TextBox18.Text)
        'funcion unir o formar combinaciones 8o lisb
        ListBox8.Items.Add(TextBox1.Text)
        ListBox8.Items.Add(TextBox3.Text)
        ListBox8.Items.Add(TextBox5.Text)
        ListBox8.Items.Add(TextBox19.Text)
        ListBox8.Items.Add(TextBox27.Text)
        ListBox8.Items.Add(TextBox29.Text)
        'funcion unir o formar combinaciones 9o lisb
        ListBox9.Items.Add(TextBox22.Text)
        ListBox9.Items.Add(TextBox25.Text)
        ListBox9.Items.Add(TextBox27.Text)
        ListBox9.Items.Add(TextBox30.Text)
        ListBox9.Items.Add(TextBox31.Text)
        ListBox9.Items.Add(TextBox32.Text)
        'funcion unir o formar combinaciones 10o lisb
        ListBox10.Items.Add(TextBox24.Text)
        ListBox10.Items.Add(TextBox26.Text)
        ListBox10.Items.Add(TextBox28.Text)
        ListBox10.Items.Add(TextBox33.Text)
        ListBox10.Items.Add(TextBox34.Text)
        ListBox10.Items.Add(TextBox35.Text)
        'funcion unir o formar combinaciones 11o lisb
        ListBox11.Items.Add(TextBox2.Text)
        ListBox11.Items.Add(TextBox4.Text)
        ListBox11.Items.Add(TextBox23.Text)
        ListBox11.Items.Add(TextBox31.Text)
        ListBox11.Items.Add(TextBox32.Text)
        ListBox11.Items.Add(TextBox34.Text)
        'funcion unir o formar combinaciones 12o lisb
        ListBox12.Items.Add(TextBox1.Text)
        ListBox12.Items.Add(TextBox2.Text)
        ListBox12.Items.Add(TextBox4.Text)
        ListBox12.Items.Add(TextBox32.Text)
        ListBox12.Items.Add(TextBox33.Text)
        ListBox12.Items.Add(TextBox35.Text)
        'funcion unir o formar combinaciones 13o lisb
        ListBox13.Items.Add(TextBox6.Text)
        ListBox13.Items.Add(TextBox13.Text)
        ListBox13.Items.Add(TextBox31.Text)
        ListBox13.Items.Add(TextBox33.Text)
        ListBox13.Items.Add(TextBox35.Text)
        ListBox13.Items.Add(TextBox36.Text)

        'funcion unir o formar combinaciones 14o lisb
        ListBox14.Items.Add(TextBox13.Text)
        ListBox14.Items.Add(TextBox14.Text)
        ListBox14.Items.Add(TextBox30.Text)
        ListBox14.Items.Add(TextBox31.Text)
        ListBox14.Items.Add(TextBox33.Text)
        ListBox14.Items.Add(TextBox35.Text)
        'funcion unir o formar combinaciones 15o lisb
        ListBox15.Items.Add(TextBox6.Text)
        ListBox15.Items.Add(TextBox7.Text)
        ListBox15.Items.Add(TextBox8.Text)
        ListBox15.Items.Add(TextBox12.Text)
        ListBox15.Items.Add(TextBox14.Text)
        ListBox15.Items.Add(TextBox15.Text)
        ListBox15.Items.Add(TextBox30.Text)
        'funcion unir o formar combinaciones 16o lisb
        'funcion unir o formar combinaciones 17o lisb
        'funcion unir o formar combinaciones 18o lisb
        'funcion unir o formar combinaciones 19o lisb
        'funcion unir o formar combinaciones 20o lisb



    End Sub



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Close()
    End Sub

    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        TextBox1.Text = r1 + 1
        TextBox2.Text = r1 + 2
        TextBox3.Text = r1 + 3
        TextBox4.Text = r1 - 1
        TextBox5.Text = r1 - 2
        TextBox6.Text = r1 - 3

        TextBox7.Text = r2 + 1
        TextBox8.Text = r2 + 2
        TextBox9.Text = r2 + 3
        TextBox10.Text = r2 - 1
        TextBox11.Text = r2 - 2
        TextBox12.Text = r2 - 3

        TextBox13.Text = r3 + 1
        TextBox14.Text = r3 + 2
        TextBox15.Text = r3 + 3
        TextBox16.Text = r3 - 1
        TextBox17.Text = r3 - 2
        TextBox18.Text = r3 - 3


        TextBox19.Text = r4 + 1
        TextBox20.Text = r4 + 2
        TextBox21.Text = r4 + 3
        TextBox22.Text = r4 - 1
        TextBox23.Text = r4 - 2
        TextBox24.Text = r4 - 3

        TextBox25.Text = r5 + 1
        TextBox26.Text = r5 + 2
        TextBox27.Text = r5 + 3
        TextBox28.Text = r5 - 1
        TextBox29.Text = r5 - 2
        TextBox30.Text = r5 - 3


        TextBox31.Text = r6 + 1
        TextBox32.Text = r6 + 2
        TextBox33.Text = r6 + 3
        TextBox34.Text = r6 - 1
        TextBox35.Text = r6 - 2
        TextBox36.Text = r6 - 3


    End Sub

    Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
        TextBox1.Text = ar1 + 1
        TextBox2.Text = ar1 + 2
        TextBox3.Text = ar1 + 3
        TextBox4.Text = ar1 - 1
        TextBox5.Text = ar1 - 2
        TextBox6.Text = ar1 - 3

        TextBox7.Text = br2 + 1
        TextBox8.Text = br2 + 2
        TextBox9.Text = br2 + 3
        TextBox10.Text = br2 - 1
        TextBox11.Text = br2 - 2
        TextBox12.Text = br2 - 3

        TextBox13.Text = cr3 + 1
        TextBox14.Text = cr3 + 2
        TextBox15.Text = cr3 + 3
        TextBox16.Text = cr3 - 1
        TextBox17.Text = cr3 - 2
        TextBox18.Text = cr3 - 3


        TextBox19.Text = dr4 + 1
        TextBox20.Text = dr4 + 2
        TextBox21.Text = dr4 + 3
        TextBox22.Text = dr4 - 1
        TextBox23.Text = dr4 - 2
        TextBox24.Text = dr4 - 3

        TextBox25.Text = er5 + 1
        TextBox26.Text = er5 + 2
        TextBox27.Text = er5 + 3
        TextBox28.Text = er5 - 1
        TextBox29.Text = er5 - 2
        TextBox30.Text = er5 - 3


        TextBox31.Text = sr6 + 1
        TextBox32.Text = sr6 + 2
        TextBox33.Text = sr6 + 3
        TextBox34.Text = sr6 - 1
        TextBox35.Text = sr6 - 2
        TextBox36.Text = sr6 - 3
    End Sub

    Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged

    End Sub

    Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged

    End Sub

    Private Sub CheckBox5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox5.CheckedChanged

    End Sub

    Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged

    End Sub





    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim Num As Double
        Randomize()
        Num = Rnd()
        MsgBox(Num)
    End Sub

   
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
       
        ListBox1.Items.Clear()
        ListBox2.Items.Clear()
        ListBox3.Items.Clear()
        ListBox4.Items.Clear()
        ListBox5.Items.Clear()
        ListBox6.Items.Clear()
        ListBox7.Items.Clear()
        ListBox8.Items.Clear()
        ListBox9.Items.Clear()
        ListBox10.Items.Clear()
        ListBox11.Items.Clear()
        ListBox12.Items.Clear()
        ListBox13.Items.Clear()
        ListBox14.Items.Clear()
        ListBox15.Items.Clear()
        ListBox16.Items.Clear()
        ListBox17.Items.Clear()
        ListBox18.Items.Clear()
        ListBox19.Items.Clear()
        ListBox20.Items.Clear()
       
    End Sub
End Class



#345
Cita de: Eleкtro en 12 Julio 2014, 11:28 AM
¿Puedes proporcionar una url con un "juego" o un servico de combinaciones real donde se utilice ese algoritmo?.

Sinceramente, no se o no me viene a la cabeza que es eso de la "rueda de códigos infantil" ni "rueda cargada" xD.

Hola elektro
yo he buscado y no encuentro alguna información sobre ruedas infantiles salvo sea juegos educacionales jeje. no prestes atención a el nombre que creo es lo que nos confunde

Yo veo el problema de esta forma:

los numeros guías son en principio los que se combinan pero el secreto esta en como se forman las combinaciones en posición de menor a mayor si te fijas en la chorrada que puse de código veras que trato de combinar de esta forma , introduzco los numeros en orden menor a mayor en los texboxes del 1 al 14 y después posiciono estos numeros en los texboxes  del 15 en adelante en combinaciones de 6 numeros según las combinaciones de la rueda fijándome en posición de los numeros guías lo hace

Números guías:   01-02-03-04-05-06-07-08-09-10-11-12-13-14
mis numeros:      10 13 18 25 26 28 30 32 35 37 40 42 45 47

Combinaciones de la rueda
01)...01-02-03-04-05-06.
02)...01-02-03-07-08-09. .


mis numeros: 10 13 18 25 26 28 30 32 35 37 40 42 45 47
combinaciones con mis numeros

1) 10 13 18 25 26 28
2) 10 13 18 30 32 35

fíjate que cada uno mis numeros toman la misma posición de las combinaciones de la rueda ya que sustituyo según posiciones que tiene los de la rueda .



01)...01-02-03-04-05-06. <---rueda
1)     10 13 18 25 26 28  <--mis numeros


02)...01-02-03-07-08-09. .Rueda <-a los numeros de la rueda <--lo sustituyo en el mismo orden por mis numeros en las combinaciones
2)     10 13 18 30 32 35  . mis numeros   


Pondria el documento que tengo pero es un pdf y no se como hacerlo


Luis
#346
Gracias elektro por tu paciencia

Puse un post donde explico un poco mejor el asunto me imagino que lo habrás leído :)

No se explicar bien el problema tratare de hacerlo mejor.

Primero en los códigos que me has mostrado pasa una cosa y es que cada ves que lo ejecuto cambian las combinaciones y deberían ser las mismas combinaciones siempre y cuando no se cambien los numeros introducidos por el usuario los numeros guías son para tomar las posiciones
de las combinaciones los numeros no son asociados ni no son para ver que posición toman en orden, ya que si pongo el de 10 de primero este toma la posición del 1 y si pongo el 20 de primero este hace lo mismo toma la posicion del 1  :)

Números  01-02-03-04-05-06-07-08-09-10-11-12-13-14
               
               01-02-03-04-05-06
               01-02-03-             07-08-09
               01-04-09-                             10-11-12
               01-          05-  07                   10         13-14
               01-            06-   08-                  11-12-13

                  02-03-04-        07-             10-          13

                  02-03-   05-                 09-    11-          14
                  02-    04-        08-                 11-       3-14
                  02-      05-06-                   10-11-12
                  03-         06-     09-                     12-13-14
                  03-            07-08-   1         10-11-12

                  03-            07-08-   10-11-12
                        04-05-06-07-08-09

Combinaciones de la rueda aquí esta la forma en como se combinan los numeros

01)...01-02-03-04-05-06.
02)...01-02-03-07-08-09. .
03)...01-04-09-10-11-12
04)...01-05-07-10-13-14. .
05)...01-06-08-11-12-13. .
06)...02-03-04-07-10-13
07)...02-03-05-09-11-14. .
08)...02-04-08-11-13-14. .
09)...02-05-06-10-11-12
10)...03-06-09-12-13-14. .
11)...03-07-08-10-11-12. .
12)...04-05-06-07-08-09


Números guías:   01-02-03-04-05-06-07-08-09-10-11-12-13-14

numeros usuario: 10 13 18 25 26 28 30 32 35 37 40 42 45 47<--este seria el imput

y esta la salida

10 13 18 25 26 28
10 13 18 30 32 35
10 25 35 37 40 42
10 26 30 37 45 47
10 28 32 40 42 45
13 18 25 30 37 45
13 18 26 35 40 47
13 25 32 40 45 47
13 26 28 37 42 45
18 28 35 42 45 47
18 30 32 37 42 45
25 26 28 30 32 35


Gracias por tu infinita paciencia

Luis
#347
Como no logre hacerme entender en el otro pos me decidí a hacerlo a pie jeje pero no me da las combinaciones como debe ser pongo la idea y el código que estoy haciendo pero no me va.



Números guías: 01-02-03-04-05-06-07-08-09-10-11-12-13-14

Para usar esta rueda: Imprime una copia de la impresora. Escribe tus números
debajo de mis números guías, úsalos como usarías una rueda de códigos infantil
para cambiar los números por los míos en las combinaciones debajo. Esto es una
rueda cargada, entonces si clasificas tus números de mejor a peor, entonces
coloca de primero las mejores opciones en la rueda yendo de izquierda a derecha.

Números guías: 01-02-03-04-05-06-07-08-09-10-11-12-13-14
               
               01-02-03-04-05-06
               01-02-03-         07-08-09
               01-04-09-                  10-11-12
               01-          05-  07       10       13-14
               01-            06-   08-      11-12-13

                  02-03-04-      07-      10-      13

                  02-03-   05-        09-    11-      14
                  02-    04-        08-      11-   13-14
                  02-      05-06-         10-11-12
                  03-         06-     09-       12-13-14
                  03-            07-08-   10-11-12

                  03-            07-08-   10-11-12
                        04-05-06-07-08-09

Combinaciones de la rueda
01)...01-02-03-04-05-06.
02)...01-02-03-07-08-09. .
03)...01-04-09-10-11-12
04)...01-05-07-10-13-14. .
05)...01-06-08-11-12-13. .
06)...02-03-04-07-10-13
07)...02-03-05-09-11-14. .
08)...02-04-08-11-13-14. .
09)...02-05-06-10-11-12
10)...03-06-09-12-13-14. .
11)...03-07-08-10-11-12. .
12)...04-05-06-07-08-09


Números guías:   01-02-03-04-05-06-07-08-09-10-11-12-13-14
numeros usuario: 10 13 18 25 26 28 30 32 35 37 40 42 45 47

esta tendria que ser la salida con los numeros del usuario
10 13 18 25 26 28
10 13 18 30 32 35
10 25 35 37 40 42
10 26 30 37 45 47
10 28 32 40 42 45
13 18 25 30 37 45
13 18 26 35 40 47
13 25 32 40 45 47
13 26 28 37 42 45
18 28 35 42 45 47
18 30 32 37 42 45
25 26 28 30 32 35
codigo

Código (vbnet) [Seleccionar]
Public Class Form1

   Dim r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14 As Integer

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       r1 = Val(TextBox1.Text)
       r2 = Val(TextBox2.Text)
       r3 = Val(TextBox3.Text)
       r4 = Val(TextBox4.Text)
       r6 = Val(TextBox5.Text)
       r6 = Val(TextBox6.Text)


       TextBox15.Text = r1
       TextBox16.Text = r2
       TextBox17.Text = r3
       TextBox18.Text = r4
       TextBox19.Text = r5
       TextBox16.Text = r6



   End Sub

   
End Class







#348
He logrado esto :) todavia me falta grabar en txt y eliminar repetidos y meter los numeros a combinar manualmente :)

Código (vbnet) [Seleccionar]
Public Class ComboTest : Inherits Form

#Region " Objects, Vars "

   ' La Class "Random", es necesaria para desordenar una colección
   ' y esta declaración tiene que ir siempre fuera de cualquier Sub.
   Private ComboRandomizer As New Random

   ' El control que creo en tiempo de ejecución, donde mostraré las combinaciones.
   Private rtb As New RichTextBox With
           {
             .Dock = DockStyle.Fill,
             .Font = New Font("Lucida Console", 10.0F)
           }

   ' Una "palanca" para habilitar/deshabilitar el bloque de depuración.
   Private EnableDebug As Boolean = False

   ' Instancio una lista donde iremos guardando cada combinación obtenida.
   Private Combos As New List(Of Integer())


   ' enpesamos combis
   Private ReadOnly NumberWheel As New Dictionary(Of Integer, Integer) From
      {{1, 15}, {2, 19}, {3, 20}, {4, 22}, {5, 25}, {6, 30}} '<---- esto solo tengo que ir seguiendo la secuencia de la rueda :). tengo que eliminar las conbis  repetidas ????
   ' esto los he puesto a lo loco


   ' Otra lista donde le daré el formato deseado a los números.
   Dim ComboStrings As List(Of String) = Nothing

   ' El máximo de combinaciones.
   Private Property MaxCombos As Integer = 20I ' <---aca esta chupado.

   ' El máximo de longitud para cada combinación.
   Private Property MaxComboLength As Integer = 6I '<----- aca esta tambien chupado.

   ' Los números "guías" que usaremos para rellenar cada combinación. """"""  <-----aca estoy tratando de que estos numeros se introduscan manualmente
   ' ya que cambian a cada rato y no son los mismos
   Private ReadOnly Numbers As Integer() =
       (From n As Integer In
        ("01-02-03-04-05-06-07-12-18-22-44-48-55-69-99" &
         ""
        ).Split({"-"}, StringSplitOptions.RemoveEmptyEntries)).ToArray

#End Region

#Region " Constructors "

   ' De este Sub no hagas caso, es el constructor del Form.
   Public Sub New()

       ' This call is required by the designer.
       ' Add any initialization after the InitializeComponent() call.  
       InitializeComponent()

       ' Añado el control al Form.
       Me.Controls.Add(rtb)

   End Sub

#End Region

#Region " Event-Handlers "

   Private Sub ComboTest() Handles MyBase.Load

       Me.DoCombos()
       Me.PrintCombos()

   End Sub

#End Region

#Region " Methods "

   ' La función que se encarga de desordenar y devolverte una combinación.'<---- tengo que eliminar las conbis  repetidas ????
   ' By Elektro.
   Friend Function GetRandomCombination(Of T)(ByVal [NumberWheel] As IEnumerable(Of T),
                                              ByVal [Length] As Integer) As IEnumerable(Of T)

       Return (From Item As T In [NumberWheel] Order By ComboRandomizer.Next Take [Length]).ToArray

   End Function

   Private Sub DoCombos()

       ' Añadir combinaciones a la lista, hasta que la lista tenga 'MaxComboLength' (80) elementos.
       Do Until Combos.Count = (MaxCombos - 1)

           ' Obtengo una combinación.
           Dim tmpCombo As Integer() = Me.GetRandomCombination(Of Integer)(Numbers, MaxComboLength)

           ' Ordeno los elementos de la combinación, de menos a mayor.
           Array.Sort(tmpCombo)

           ' Añado la combinación a la lista.'<----y  grabar estas listas en un txt ????
           Combos.Add(tmpCombo)

       Loop

       ' Ordeno los elementos de la lista, basandome en el orden de los elementos de cada Array.
       ' NOTA: Puede tener fallos al ordenar, no aseguro que el orden sea perfecto.
       Combos = (From Combo As Integer() In Combos Order By Convert.ToDecimal(String.Join("", Combo)) Ascending).ToList
       Combos = (From Combo As Integer() In Combos Order By Combo.First Ascending).ToList

       ' Además, creo utra lista Strings, para darle formato a cada combo numérico,
       ' y añadirle así un "0" a los números del "1" al "9" y que quede más bonito en la previsualización xD.
       Me.ComboStrings =
           (From Combo In Combos
            Select (String.Join(" | ", From Value As String In Combo
                                      Select If(Value.Length = 1, "0" & Value, Value)))).ToList

#If DEBUG Then

       ' El bloque de depuración.
       ' Este bloque entero es para testear el formato que le quieras dar.
       If Me.EnableDebug Then

           Dim sb As New System.Text.StringBuilder

           With sb

               For Index As Integer = 0 To (MaxCombos - 1)

                   sb.AppendLine(String.Format("Combo sin formato:"))
                   sb.AppendLine(String.Join(", ", Combos(Index)))
                   sb.AppendLine()
                   sb.AppendLine(String.Format("Combo con formato:"))
                   sb.AppendLine(String.Join(", ", ComboStrings(Index)))

                   MessageBox.Show(sb.ToString, "", MessageBoxButtons.OK, MessageBoxIcon.Information)

                   sb.Clear()

               Next Index

           End With

       End If

#End If

   End Sub

   Private Sub PrintCombos()

       ' Muestro los Combos en el control.
       With Me.rtb

           .SuspendLayout()
           For Each Combo As String In Me.ComboStrings
               .AppendText(Combo)
               .AppendText(Environment.NewLine & New String("-", Combo.Length) & Environment.NewLine)
           Next Combo
           .ResumeLayout()

           .Select(0, 0)

       End With

   End Sub

#End Region

End Class



No funciona buaaa ya que las cambinaciones cambian cada ves que ejecuto el codigo y deberian de tomar el orden del indice y si los numeros introducidos no cambian no deberian de cambiar las combinciones
#349
Hola ahora si estoy mas loco todavia jejje tengo dos dias tratando de hacer lo que me dijo elektro y na,tambien no encuentro la logica ya que los numeros que introdusco son diferentes cada ves que nesecito hacer el procedimiento y recien me doy cuenta que creo que lo del indice que me dices no es con mis numeros si no la posición original de la rueda y esta no debe de cambiar solo la de mis numeros.

he tratado de hacerlo corto pero solo me da las mismas combinaciones ????


Código (vbnet) [Seleccionar]
Public Class ComboTest : Inherits Form

#Region " Objects, Vars "

   ' La Class "Random", es necesaria para desordenar una colección
   ' y esta declaración tiene que ir siempre fuera de cualquier Sub.
   Private ComboRandomizer As New Random

   ' El control que creo en tiempo de ejecución, donde mostraré las combinaciones.
   Private rtb As New RichTextBox With
           {
             .Dock = DockStyle.Fill,
             .Font = New Font("Lucida Console", 10.0F)
           }

   ' Una "palanca" para habilitar/deshabilitar el bloque de depuración.
   Private EnableDebug As Boolean = False

   ' Instancio una lista donde iremos guardando cada combinación obtenida.
   Private Combos As New List(Of Integer())


   ' enpesamos combis
   Private ReadOnly NumberWheel As New Dictionary(Of Integer, Integer) From
      {{1, 15}, {2, 19}, {3, 20}, {4, 22}, {5, 22}}

   ' Otra lista donde le daré el formato deseado a los números.
   Dim ComboStrings As List(Of String) = Nothing

   ' El máximo de combinaciones.
   Private Property MaxCombos As Integer = 50I

   ' El máximo de longitud para cada combinación.
   Private Property MaxComboLength As Integer = 11I

   ' Los números "guías" que usaremos para rellenar cada combinación.
   Private ReadOnly Numbers As Integer() =
       (From n As Integer In
        ("01-02-03-04-05-06" &
         ""
        ).Split({"-"}, StringSplitOptions.RemoveEmptyEntries)).ToArray

#End Region

#Region " Constructors "

   ' De este Sub no hagas caso, es el constructor del Form.
   Public Sub New()

       ' This call is required by the designer.
       ' Add any initialization after the InitializeComponent() call.  
       InitializeComponent()

       ' Añado el control al Form.
       Me.Controls.Add(rtb)

   End Sub

#End Region

#Region " Event-Handlers "

   Private Sub ComboTest() Handles MyBase.Load

       Me.DoCombos()
       Me.PrintCombos()

   End Sub

#End Region

#Region " Methods "

   ' La función que se encarga de desordenar y devolverte una combinación.
   ' By Elektro.
   Friend Function GetRandomCombination(Of T)(ByVal [NumberWheel] As IEnumerable(Of T),
                                              ByVal [Length] As Integer) As IEnumerable(Of T)

       Return (From Item As T In [NumberWheel] Order By ComboRandomizer.Next Take [Length]).ToArray

   End Function

   Private Sub DoCombos()

       ' Añadir combinaciones a la lista, hasta que la lista tenga 'MaxComboLength' (80) elementos.
       Do Until Combos.Count = (MaxCombos - 1)

           ' Obtengo una combinación.
           Dim tmpCombo As Integer() = Me.GetRandomCombination(Of Integer)(Numbers, MaxComboLength)

           ' Ordeno los elementos de la combinación, de menos a mayor.
           Array.Sort(tmpCombo)

           ' Añado la combinación a la lista.
           Combos.Add(tmpCombo)

       Loop

       ' Ordeno los elementos de la lista, basandome en el orden de los elementos de cada Array.
       ' NOTA: Puede tener fallos al ordenar, no aseguro que el orden sea perfecto.
       Combos = (From Combo As Integer() In Combos Order By Convert.ToDecimal(String.Join("", Combo)) Ascending).ToList
       Combos = (From Combo As Integer() In Combos Order By Combo.First Ascending).ToList

       ' Además, creo utra lista Strings, para darle formato a cada combo numérico,
       ' y añadirle así un "0" a los números del "1" al "9" y que quede más bonito en la previsualización xD.
       Me.ComboStrings =
           (From Combo In Combos
            Select (String.Join(" | ", From Value As String In Combo
                                      Select If(Value.Length = 1, "0" & Value, Value)))).ToList

#If DEBUG Then

       ' El bloque de depuración.
       ' Este bloque entero es para testear el formato que le quieras dar.
       If Me.EnableDebug Then

           Dim sb As New System.Text.StringBuilder

           With sb

               For Index As Integer = 0 To (MaxCombos - 1)

                   sb.AppendLine(String.Format("Combo sin formato:"))
                   sb.AppendLine(String.Join(", ", Combos(Index)))
                   sb.AppendLine()
                   sb.AppendLine(String.Format("Combo con formato:"))
                   sb.AppendLine(String.Join(", ", ComboStrings(Index)))

                   MessageBox.Show(sb.ToString, "", MessageBoxButtons.OK, MessageBoxIcon.Information)

                   sb.Clear()

               Next Index

           End With

       End If

#End If

   End Sub

   Private Sub PrintCombos()

       ' Muestro los Combos en el control.
       With Me.rtb

           .SuspendLayout()
           For Each Combo As String In Me.ComboStrings
               .AppendText(Combo)
               .AppendText(Environment.NewLine & New String("-", Combo.Length) & Environment.NewLine)
           Next Combo
           .ResumeLayout()

           .Select(0, 0)

       End With

   End Sub

#End Region

End Class



Te envie un privado elektro

gracias :)

Luis


#350
Cita de: Eleкtro en  6 Julio 2014, 10:01 AM
hmmm... por lo que me estoy dando cuenta, lo que llamas "números guias" son como un índice y cada índice está ligado a un número especifico

Es decir:
Index 1 = number 15
...
Index 6 = number 30
etc...

Puedes usar un objeto al que poder asignarle una llave y un valor, por ejemplo un Dictionary(Of Integer, Integer) , y al acceder según el índice, se mostraría el número ligado.

Ejemplo (escrito al vuelo):
   Private ReadOnly NumberWheel As new Dictionary(of integer, integer) from
      { {1, 15}, {2, 19}, {3, 20}, {4, 22}, etc...}


Luis, repasate el código que posteé en la primera página de este hilo, solo necesitarías hacerle unas pequeñas modificaciones:

Creo que con estas modificaciones sería suficiente para obtener el resultado esperado:

1. Asignar un índice y sus valores ligados como en el ejemplo de arriba, en un Array, una Lista, un Diccionario, una Tupla, o como prefieras.
2. Desordenar el índice y hacer combinaciones con el índice, en lugar de desordenar los números ligados como yo hice.
+
3. Eliminar posibles duplicados en las combinaciones (se me olvidó hacerlo xD)

PD: Te lo modificaría yo, pero por el momento con el código anterior considero que ya me esmeré bastante, y que programes como "afición" no significa que no puedas intentar hacerle esas modificaciones por ti mismo, ¡muestranos algo tuyo!.

Saludos


Si señor  :silbar: me esmerare en hacerlo ya tengo la una pista jejej, y gracias :)

Luis