Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Programa basico de adivinar numero

Estas en el tema de Programa basico de adivinar numero en el foro de Visual Basic clásico en Foros del Web. Hola gente , estoy empezando con visual basic y ando un poco perdido , tengo que hacer para la universidad una pequeña practica muy sencilla ...
  #1 (permalink)  
Antiguo 13/01/2010, 14:15
 
Fecha de Ingreso: abril-2009
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Programa basico de adivinar numero

Hola gente , estoy empezando con visual basic y ando un poco perdido , tengo que hacer para la universidad una pequeña practica muy sencilla , la he empezado a hacer este es el enunciado:

Se trata de realizar un programa en el que un usuario deba adivinar un número del 1 al 100 en 10 intentos.

Para ello se debe pedir al usuario que introduzca un número en un cuadro de texto y al pulsar en un botón de comando, el programa le debe indicar si ha acertado o no (en este caso le dará una pista de si el número a acertar es más grande o más pequeño).

El usuario tiene 10 intentos para acertar, si lo adivina de 1 a 3 intentos debe mostrar un mensaje diciéndole que es un gran adivino, si lo hace de 4 a 6 le indica que es gran experto y si lo hace del 7 a 10, le indica que ha sido un gran rival. Si no acierta en 10 intentos, le debe indicar un mensaje diciéndole que ha perdido y además le debe formular una pregunta de si desea abandonar el programa (mediante un msgbox).


NOTA: Se ha de usar la función rnd, randomize. Y también un modulo con las variables globales oportunas, una función que devuelva un valor y un procedimiento que se le pase un parámetro. Si se da a lugar usar Try … Catch para controlar errores.

por ahora lo que he hecho que es casi nada han sido los botones y el textbox aparte me he creado como dice una pequeña funcion por llamarlo asi con el randomize para que me de numero aleatorios del 1 al 10 a partir de ahi que puedo hacer , que alguien me ayude porque me esta costando mucho.
gracias
  #2 (permalink)  
Antiguo 14/01/2010, 02:44
Avatar de rulsanchez  
Fecha de Ingreso: octubre-2008
Ubicación: Manchester
Mensajes: 64
Antigüedad: 16 años
Puntos: 0
Respuesta: Programa basico de adivinar numero

Y cual es la pregunta exactamente?
  #3 (permalink)  
Antiguo 14/01/2010, 05:45
 
Fecha de Ingreso: abril-2009
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Programa basico de adivinar numero

Cita:
Iniciado por rulsanchez Ver Mensaje
Y cual es la pregunta exactamente?

hombre pues la pregunta es si me podeis ayudar en alguna funcion o darme pequeña pistas , ya digo que estoy muy verde en visual b.
gracias
  #4 (permalink)  
Antiguo 14/01/2010, 06:06
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 19 años
Puntos: 13
Respuesta: Programa basico de adivinar numero

Hola

Primero genera un número aleatorio utilizando la función Rnd (antes de llamar a rnd utiliza la instrucción randomize) y métela en una variable. La forma de generar el número la puedes ver en la ayuda del VB.

Cita:
Int((Límite_superior - límite_inferior + 1) * Rnd + límite_inferior)
Te creas una variable booleana para controlar si acierta el número o no, y otra para contar los errores. Con un mientras (while) acierto sea false, pides que introduzca un número y lo comparas con el número generado, si es correcto pones la variable acierto a true (para salir del mientras) y si no sumas el contador y le das la pista (comparando los dos números)

Cuando salga del mientras (porque acierto es true o porque contador es mayor que 10) comparas con un Select Case el valor del contador y muestras el mensaje.

Bueno todo esto es para darte una idea, seguro que no he tenido en cuenta todas las posibilidades, pero supongo que te servirá para comenzar y si tienes algo mas concreto no dudes en preguntar (darte algo mas concreto sería darte el programa)

--Saludos--
  #5 (permalink)  
Antiguo 14/01/2010, 09:14
 
Fecha de Ingreso: abril-2009
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Programa basico de adivinar numero

muchas gracias la primera parte la del randomize si que ya la tenia hecha , para que me dises un numero aleatorio lo que no se hacer es lo siguiente lo que me has intentado explicar , haber si me lo puedes explicar de forma mas sencilla , muchas gracias.
  #6 (permalink)  
Antiguo 14/01/2010, 12:25
 
Fecha de Ingreso: abril-2009
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Programa basico de adivinar numero

mira esto es lo que he conseguido por ahora:

Public Class Form1
Dim n As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Randomize()
n = Rnd() * 100
TextBox1.Text = Val(n)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Val(TextBox2.Text) > n Then
TextBox3.Text = "El numero es MEnor"
Else
If Val(TextBox2.Text) < n Then
TextBox3.Text = " el numero es MAyor "
Else
TextBox3.Text = " Has acertado el numero "
End If
End If
End Sub

Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged

End Sub
End Class


------------
por ahora lo que me hace es introduzco numero y me indica si es mayor o menor al generado , y cuando lo aciertas te da el mensaje de que es el numero correcto.
ahora lo que quiero hacer es un contador de 10 intentos y no se como, a ver si alguien me puede ayudar.
  #7 (permalink)  
Antiguo 14/01/2010, 17:46
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 17 años, 3 meses
Puntos: 20
Respuesta: Programa basico de adivinar numero

eso puedes hacerlo a travez de un ciclo for
  #8 (permalink)  
Antiguo 14/01/2010, 17:50
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 17 años, 3 meses
Puntos: 20
Respuesta: Programa basico de adivinar numero

Por aca viene explicado el uso de for, basicamente tienes que meter tus instrucciones dentro del ciclo:

Código vb:
Ver original
  1. For CONT = 1 To 10
  2.  
  3. ' Instrucciones
  4.  
  5. Next CONT
  #9 (permalink)  
Antiguo 14/01/2010, 19:16
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 3 meses
Puntos: 29
Respuesta: Programa basico de adivinar numero

Creo que solo te falta contar los intentos y hacer entero el valor de n.

Código vb:
Ver original
  1. Public Class Form1
  2. Dim n As Integer
  3. Dim Intentos As Integer
  4.  
  5. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.   Randomize()
  7.   n = Int(Rnd() * 100 ) + 1
  8.   TextBox1.Text = n
  9.   Intentos = 0
  10. End Sub
  11.  
  12. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  13. If Val(TextBox2.Text) > n Then
  14.   MsgBox  "El numero es MEnor"
  15.   Intentos = Intentos + 1
  16. ElseIf Val(TextBox2.Text) < n Then
  17.   MsgBox  " el numero es MAyor "
  18.   Intentos = Intentos + 1
  19. Else
  20.   MsgBox  " Has acertado el numero "
  21.   End
  22. End If
  23.  
  24. If Intentos > 9 Then
  25.   MsgBox "Demasiados intentos. Has fallado."
  26.   End
  27. End If
  28. End Sub
  29.  
  30. End Class
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #10 (permalink)  
Antiguo 15/01/2010, 03:32
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 19 años
Puntos: 13
Respuesta: Programa basico de adivinar numero

Hola

Eso es, solo te faltaba crear el contador de errores, mi intención era orientarte en como puedes realizar el programa sin darte todo hecho, pero parece que pkj te ofrece casi todo el código.

Para finalizar solo te queda añadir la última parte en la que tienes que mostrar un mensaje según los intentos que ha utilizado, dentro del if intentos > 9 o cuando acierte, tienes que meter un select Case mirando el valor que tiene la variable intentos y según su valor mostrar el mensaje

--Saludos--


--Saludos--
  #11 (permalink)  
Antiguo 19/01/2010, 02:57
Avatar de juaco14  
Fecha de Ingreso: mayo-2009
Mensajes: 185
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Programa basico de adivinar numero

Código:
Public Class Form1
Dim n As Integer
Dim Intentos As Integer
 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Randomize()
  n = Int(Rnd() * 100 ) + 1
  TextBox1.Text = n
  Intentos = 0
End Sub
 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Val(TextBox2.Text) > n Then
  MsgBox  "El numero es MEnor"
  Intentos = Intentos + 1
ElseIf Val(TextBox2.Text) < n Then
  MsgBox  " el numero es MAyor "
  Intentos = Intentos + 1
Else
if intentos < 11 and > 6 then 
  MsgBox  " gran rival"
end if
if intentos < 7 abd > 3 then
  MsgBox  " gran experto"
end if
if intentos < 4 and > 0 then
  MsgBox  " gran adivino"
end if
  End
End If
 
If Intentos > 9 Then 
  MsgBox "Demasiados intentos. Has fallado."
  End
End If
End Sub
 
End Class
No lo probe pero algo asi deberia andar.

Etiquetas: adivinar, basico, numero, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:02.