Tema: favor ayuda
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/03/2011, 11:01
Avatar de Heimish2000
Heimish2000
 
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 9 meses
Puntos: 89
Respuesta: favor ayuda

El problema es que si te sale dos veces el mismo número al hacer el random vuelves a poner ese check, pero le sumas uno a i por lo que te cogera un check menos (ya que uno te lo ha cogido dos veces). El caso extremo sería que te saliera con el random seis veces el mismo número y por tanto solo te aparecería un check (que has habilitado seis veces, pero visualmente será uno solo)

Antes de ponerlo checked tienes que comprobar si ya está. Si no está lo pones checked y sumas uno a i, si está ya checked no haces nada y sacas otro número aleatorio.

Código vb:
Ver original
  1. Do
  2. m = CInt(Int((48 * Rnd) + 1))
  3. If (chk0(m).Value != vbChecked)
  4. chk0(m).Value != vbChecked
  5. i = i + 1
  6.  
  7. If chk0(m) = 49 Then
  8. m = m - 1
  9. End If
  10.  
  11. If chk0(m).BackColor = vbGreen Then
  12.  
  13. m = m - 1
  14. End If
  15. End If
  16. Loop Until (i = 6)