[Simple] ContraZec + Explicación

Topic created · 13 Mensajes · 1543 Visitas
  • @Hawkings said:

    Pero en las pruebas alguna vez te ha salido un nueve??
    Yo repito que en visual basic no estoy seguro pero por lo que veo en google:
    randomvalue = CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound))
    Aquí, upperbound es el número mayor en el intervalo y lowerbound es el número menor.
    en este caso el menor es 0 y el mayor 9, es decir:
    randomvalue = CInt(Int((9-0 +1)*Rnd() + 0))
    o lo que es lo mismo:
    randomvalue = CInt(Int(10*Rnd())
    (la fórmula esa la saque de http://msdn.microsoft.com/es-es/library/f7s023d2%28VS.80%29.aspx)
    Saludos, y mira a ver si te sale algun nueve con ese código.

    Luego me fijo y edito, ahora estoy fuera de casa

    Edito: Pues tal, tenías razón O_O, no sale ningún 9

  • **[alinear-centro][/alinear-centro]

    P/D: Sepan que soy nuevo en VB.net
    [alinear-centro][attachment=0][/alinear-centro][alinear-centro][attachment=1][/alinear-centro]

    [alinear-centro]Aquí os traigo la explicación de las partes más importantes del código de fuente ^^.[/alinear-centro]

    Veamos primero el IF de la contraseña:

            If TextBox1.Text = ("Ninjesta") Then
    

    Esto se podría traducir en "Si CajaDeTexto.Texto = ("Ninjesta") Entonces.."
    Significa que si sucede X cosa ( X Cosa en este caso es si en la caja de texto dice Ninjesta) entonces se ejecuta una acción que es esta:

               Principal.Show()
                Me.Hide()
            Else
                MsgBox("Contraseña incorrecta o en blanco")
            End If
    

    Veamos:

    Principal.Show()
    

    Muestra el formulario principal, o sea "lo que viene" después de loguearte

    Me.Hide()
    

    Me = es igual a mi, Hide a ocultar, o sea en "total" significa que se oculta el formulario de login y se abre la ventana principal.

            Else
                MsgBox("Contraseña incorrecta o en blanco")
            End If
    

    "Else" se podría definir como un "sino", o sea si no pasa que en la caja de texto diga Ninjesta..

                MsgBox("Contraseña incorrecta o en blanco")
    

    Envía este MsgBox, que es un cuadro informativo, que hace precisamente eso, informarnos que no se ha escrito lo que se debía, sino otra cosa (Lo que se debía escribir era: Ninjesta)

    End If
    

    Final del IF, aquí termina "la acción" principal en este caso.

    Por lo que tendríamos algo así:

    Public Class Form1
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If TextBox1.Text = ("Ninjesta") Then
                Principal.Show()
                Me.Hide()
            Else
                MsgBox("Contraseña incorrecta o en blanco")
            End If
        End Sub
    End Class
    

    Pasamos a lo que seguramente sea lo más importante del "escenario" "que viene" luego del login:

     Dim Num1 = Int(Rnd() * 9)
            Dim Num2 = Int(Rnd() * 9)
            Dim Num3 = Int(Rnd() * 9)
            Dim Num4 = Int(Rnd() * 9)
            Dim Num5 = Int(Rnd() * 9)
            Dim Num6 = Int(Rnd() * 9)
            Dim Num7 = Int(Rnd() * 9)
            Dim Num8 = Int(Rnd() * 9)
            TextBox1.Text = (Num1 & Num2 & Num3 & Num4 & Num5 & Num6 & Num7 & Num8)
    

    Bien:

     Dim Num1 = Int(Rnd() * 9)
            Dim Num2 = Int(Rnd() * 9)
            Dim Num3 = Int(Rnd() * 9)
            Dim Num4 = Int(Rnd() * 9)
            Dim Num5 = Int(Rnd() * 9)
            Dim Num6 = Int(Rnd() * 9)
            Dim Num7 = Int(Rnd() * 9)
            Dim Num8 = Int(Rnd() * 9)
    

    Esto significa que se generarán 8 números al azar (Dim = Variable), aquí por ejemplo cada número está en la función Random (Random = Azar), por lo que el número1 se define por la variable (Dim) Num1, y así con las demás.

            TextBox1.Text = (Num1 & Num2 & Num3 & Num4 & Num5 & Num6 & Num7 & Num8)
    

    esto es lo final, cambia el texto de TextBox1 (Esto pasa al hacer click en el botón generar, este es el código de ese mismo) por los números uno seguido de otro, P/EJ: Si la variable (Dim) Num1 dá el número 1, la Num2 el número 2 y así sucesivamente, daría esto:
    12345678, lo cuál está bien, ya que he utilizado este sistema para ContraZec.
    Aquí culmina mi tutorial, saludos!**

  • si no pones el código fuente esto debería ir a Utilidades.
    La sección de Software es para programación.

  • @Salvatore said:

    si no pones el código fuente esto debería ir a Utilidades.
    La sección de Software es para programación.

    😮 me olvidé del código de fuente, ahora lo subo

  • Está bien, pero una cosa:
    No funciona el link de universojuegos.
    Pon:
    process.start("www.universojuegos.es")

  • Gracias Anghios ^^

  • Si la función Rnd() de VisualBasic funciona igual que el método Math.rand() en Java (y por lo que he visto en google, creo que sí) tu programa tiene un pequeño bug :S
    Es un error muy común al utilizar esa función (hablo si funciona como yo creo xD)
    Rnd()*n generaría un número aleatorio desde 0 a n-1, es decir si pones 9 genera un número de 0 a 8. Lo correcto sería poner Rnd()*10 en vez de Rnd()*9.

    Un saludo, y si estoy equivocado me lo dices!! :DD

  • @Hawkings said:

    Si la función Rnd() de VisualBasic funciona igual que el método Math.rand() en Java (y por lo que he visto en google, creo que sí) tu programa tiene un pequeño bug :S
    Es un error muy común al utilizar esa función (hablo si funciona como yo creo xD)
    Rnd()*n generaría un número aleatorio desde 0 a n-1, es decir si pones 9 genera un número de 0 a 8. Lo correcto sería poner Rnd()*10 en vez de Rnd()*9.

    Un saludo, y si estoy equivocado me lo dices!! :DD

    No, xD te genera un número aleatorio entre 0 y 9.
    Se suelen hacer este tipo de cosas para los KeyGen cutres y mal hechos.

  • @Hawkings said:

    Si la función Rnd() de VisualBasic funciona igual que el método Math.rand() en Java (y por lo que he visto en google, creo que sí) tu programa tiene un pequeño bug :S
    Es un error muy común al utilizar esa función (hablo si funciona como yo creo xD)
    Rnd()*n generaría un número aleatorio desde 0 a n-1, es decir si pones 9 genera un número de 0 a 8. Lo correcto sería poner Rnd()*10 en vez de Rnd()*9.

    @Anghios said:

    No, xD te genera un número aleatorio entre 0 y 9.
    Se suelen hacer este tipo de cosas para los KeyGen cutres y mal hechos.

    Veamos, yo recién estoy aprendiendo en Visual Basic, pero parece que lo que dice Anghios suena lógico, yo busqué por internet y dí con ese método, (además de otros) y la inserté, la probé como 10 veces y no dió ningún problema.
    Esperemos que nunca lo dé :icon_cool:

  • Hombre, la probabilidad de que coincidan 7 números es de 1 entre 9999999 xDD