codigo para que no se repitan los numeros aleatorios con un randomize

Iniciado por jan77, 29 Enero 2011, 15:26 PM

0 Miembros y 1 Visitante están viendo este tema.

jan77

hola compañeros, espero puedan ayudarme, tengo un codigo para crear numeros aleatorios, que funciona perfectamente, pero quisiera que los numeros que vayan saliendo no se repitan , i como podria ir almacenando cada resultado , gracias este es el codigo:
Código (vbnet) [Seleccionar]

Public Class Form1

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       Timer1.Enabled = False
   End Sub

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

       Dim numero As Byte
       Timer1.Enabled = True

       Randomize()


       numero = Rnd() * 6

       Do While numero > 6
           numero = numero - 6
       Loop

       Do While numero < 1
           numero = numero + 6
       Loop
       
       Loop
       TextBox1.Text = numero
   End Sub


End Class

raul338

Ve agregandolos a una lista (List(Of Integer)) y te vas fijando con "Contains" para ver si se repite o no :)

PD: Este tema lo movi a .net, porque es visual basic .net, y siempre pon el codigo entre etiquetas [code][/code]

jan77

Cita de: raul338 en 29 Enero 2011, 16:13 PM
Ve agregandolos a una lista (List(Of Integer)) y te vas fijando con "Contains" para ver si se repite o no :)

PD: Este tema lo movi a .net, porque es visual basic .net, y siempre pon el codigo entre etiquetas [code][/code]

me podrias indicar como seria el codigo para insertar los resultados en una lista?, no se como se hace, soy novato, gracias

kingdarnakes

Tu código tiene 1 error, tiene un loop de mas. Cuando haces la suma:

numero = numero - 6

Se puede hacer así:

numero -= - 6

Tendrás el mismo resultado.

Con respecto ha almacenar los valores Yo usaría un array con tantos elementos como números quieras almacenar. Luego usas una variable para ir moviéndote por cada elemento, y esta variable que vaya incrementando.

La función Rnd() devuelve un número de tipo single... http://msdn.microsoft.com/es-es/library/f7s023d2%28v=vs.80%29.aspx