abrir varios formularios desde un solo formulario

Iniciado por creiko, 12 Septiembre 2016, 04:43 AM

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

creiko

buenas noches una pregunta



tengo que hacer este  programa que tenga 5 formularios:

1. Se debe Generar el Numero aleatorio del 1 al 25 en cada uno de los tres tableros

2. Se debe Llenar todo el Tablero para ganar

3. Debe haber la opción de manual y automático.

4. En cada tablero se debe llevar las cuentas de buenas y malas.

5 Realizar los 4 formularios pequeños de tal manera que se deben poder ver los 4 a la vez
Formulario 1

6. Desde este formulario se juega se debe poder jugar automático o manual.

tengo lo que me piden en un solo formulario.  los 15 números aleatorios y sin repetirse, el generador de la letra y el numero, el contador de buenas y malas , la parte de forma manual y automático

he visto una orden que es
Dim frm As New Form2()
frm.Show()

me abre los 5 cartones pero no logro. que se me generen los 15 números diferentes en cada cartón y el contador de buenas y malas en cada unos de ellos. y cuando uno de estos se llene me diga ganaste con el cartón ejemplo (cartón numero 2)

si alguien me brinda una ayuda los agradecería

okik

#1
hombre compañero no querrás que te hagamos el programa entero.
Deberías añadir algo de código y digas donde te da el problema o falla.

¿Cómo generas los números aleatorios? dices que no te los crea, ¿Cómo lo haces? ¿Has usado RANDOM?

Esto generaría un número aleatorio de 1 al 15
Código (vb) [Seleccionar]
Private Sub Form_Load()
Dim N As Integer
Randomize
Me.Show
N = Int((Rnd * 15) + 1)
Print N
End Sub



Funcionamiento del RANDOM

Int(Rnd * (Límite_superior - límite_inferior + 1)  + límite_inferior)


Ejemplos:
==========================================
Si quieres números del 2 a 5:
Límite superior = 5
Límite inferior = 2

Queda:
N = Int(Rnd * (5 - 2 + 1) + 2)


Resolviendo queda:
N = Int((Rnd * 4) + 2)


==========================================
Si quieres números del 1 al 15:
Límite superior = 15
Límite inferior = 1

Queda:
N = Int(Rnd * (15 - 1 + 1) + 1)

Resolviendo queda:
N = Int((Rnd * 15) + 1)


Para evitar que se repitan:


Esto lo metes en un MÓDULO

Código (vb) [Seleccionar]

Option Explicit
Dim Contador As Integer
Const LimSuperior = 200
Dim lstNumAzar(1 To LimSuperior) As Integer
Public Function NumeroAleatorio(ByVal SizeBucle As Integer) As Integer
'On Error GoTo EvitarError
Dim i As Integer
Dim strNumAzar As Integer
Dim Repetido As Boolean


'reiniciar bucle
If Contador = SizeBucle Then
Contador = 0
strNumAzar = 0
NumeroAleatorio = 0
For i = 1 To LimSuperior
lstNumAzar(i) = 0
Next i
End If
'.................................................

Do
If Contador = SizeBucle Then Exit Do
Randomize
Repetido = False
   strNumAzar = Int(Int(SizeBucle) * Rnd) + 1
For i = 1 To SizeBucle
       If lstNumAzar(i) = strNumAzar Then Repetido = True
    Next i
If Repetido = False Then
Contador = Contador + 1
lstNumAzar(Contador) = strNumAzar
NumeroAleatorio = strNumAzar
Repetido = False
End If
DoEvents
Loop While Repetido = True
End Function



Desde de un FORM lo llamas así (como ejemplo):
Código (vb) [Seleccionar]

Dim I as integer
Text1.Text = ""
For I = 1 To 15
Text1.Text = Text1.Text & NumeroAleatorio(15) & vbCrLf
Next I


Cada vez que se llama a NumeroAleatorio devuelve un número del 1 al 15 distinto. Una vez se obtienen todos si se vuelve a llamar vuelve a empezar



Nota:
la variable SizeBucle antes lo llamé TamañoBucle, pero como el GesSHI de el hacker no acepta la Ñ lo he cambiado a SizeBucle.

El máximo permitido por la función es 200. pero se puede cambiar a otro valor cambiando la constante LimSuperior.





Otro ejemplo de uso:

Código (vb) [Seleccionar]

Option Explicit
Dim CuentaClicks As Integer
Private Sub Command2_Click()

If CuentaClicks <= 15 Then
   Text1.Text = ""
   CuentaClicks = CuentaClicks + 1
   Text1.Text = NumeroAleatorio(15)
   
   If CuentaClicks = 15 Then
      MsgBox ("ganaste con el cartón ejemplo cartón numero 1")
      CuentaClicks = 0
   End If
End If

End Sub


Creas un contador para saber cuando se han generado todo los números.

Suerte con el Bingo

creiko

tengo todo lo que me piden en un solo cartón;  los 15 numero aleatorios, contador de buenas y malas, y el juego se para cuando lleno el cartón y no logro pasar todo eso a los demás cartones.

he visto esta orden que es e pasar de un formulario a otro
Dim frm As New Form2()
frm.Show()

la ayuda es como hago para que toda esa información se pase a los 4 cartones restantes, y  se me generen los 15 números diferentes en cada cartón y el contador de buenas y malas en cada unos de ellos. y cuando uno de estos se llene me diga ganaste con el cartón ejemplo (cartón numero 2)



okik



osea que la ayuda es que yo o cualquiera haga todo esto:
Cita de: creiko en 12 Septiembre 2016, 15:59 PM
tengo todo lo que me piden en un solo cartón;  los 15 numero aleatorios, contador de buenas y malas, y el juego se para cuando lleno el cartón y no logro pasar todo eso a los demás cartones.

Que por cierto no somos adivinos y no sabemos como as implementado todo eso. Cada cual lo puede hacer de una manera distinta. Y luego que hagamos lo demás, o sea todo.

En resumen que te hagamos el programa.  :¬¬

de nada