Programa que no funciona para adivinar un numero

Iniciado por eva87, 18 Abril 2012, 16:59 PM

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

eva87

Buenas tardes.
Estoy intentando crear un programa que calcule un aleatorio y te de varias oportunidades para acertarlo, el problema es que no puedo encontrar la manera de que el numero sea aleatorio al iniciar el programa pero se mantenga constante a lo largo de la ejecucion del mismo,  y ademas de eso quiero que una vez dicho un numero me de la opcion de decir otro, pero e puesto un bucle que no me funciona como querria
muchas gracias de antemano ;D :huh:

Código (vbnet) [Seleccionar]

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim k
        k = ALEAT()
        Const a =
        TextBox1.Text() = "Pon el numero aqui "
    End Sub

    Public Function ALEAT() As Integer
        Dim Aleatorio, max
        max = 1000
        Randomize()
        a = Int((max - 1) * Rnd() + 1)
    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim numero, num, max, cont, bol, al
        al = a
        num = 0
        cont = 1
        bol = True
        num = TextBox1.Text
        Do While num <> al And cont < 10
            'msgbox("intento numero " & cont)
            If num > al Then
                MsgBox("Intento numero " & cont & ". Es menor. Prueba otra vez")
                num = TextBox1.Text
            Else
                MsgBox("Intento numero " & cont & ". Es mayor. Prueba otra vez")
                num = TextBox1.Text
            End If
            cont = cont + 1
        Loop
        If num = al Then
            bol = False
        End If
        If bol = True Then
            MsgBox("Has fallado, era el " & al)
        Else
            MsgBox("Acertastes, era el " & al & " Numero de intentos " & cont)
        End If
    End Sub

$Edu$

La idea la tenes, pero te confundes con el uso de funciones, si haces una funcion aparte para que genere un numero aleatorio, esta funcion tiene que devolver el numero, asi a la variable "al" le asignas la funcion. Por ejemplo haria estos cambios en la funcion y en el valor que toma "al" ..

Código (vb) [Seleccionar]
Public Function ALEAT() As Integer
        Dim Aleatorio, max
        max = 1000
        Randomize()
        ALEAT = Int((max - 1) * Rnd() + 1)
    End Function


Entonces luego asignas asi:

Código (vb) [Seleccionar]

al = ALEAT()



Tal vez con eso ya te funciona lo que quieres.. pero tienes cosas mal, o cosas insolitas, como la variable k. Tambien tu forma de plantearte el problema.. yo te recomiendo unas cosas:

- Leerte un buen tutorial de vb.net completo, de esos largos, pero aprenderas muchisimo, si no te gusta leer intentalo y practica con cada cosa que leas.

- Plantearte los problemas en un papel con lapicera antes de empezar a codear.

- Las dudas que tengas, como en este caso tuviste antes, de como generar el numero aleatorio para que genere lo que de verdad queres, te las podes sacar creando un proyecto nuevo siempre y haciendo pruebas ahi, porque eso de sumarle 1 y restarle y eso, es como que lo arreglaste una vez que viste q no te generaba lo que querias, prueba por ejemplo que pasa si en vez de Int le pones Cint.

Luego que hayas hecho estas cosas podras hacer el resto sin problemas