Allanando el camino a los iniciados en Gambas, porque programar en Gambas es un placer!!
domingo, 9 de junio de 2013
AdivinarNúmero v0.0.1
Mas vale tarde que nunca.... este es un clásico programa donde el programa elije un número y el usuario intenta descubrirlo con 10 posibilidades, el programa nos da la única pista que consiste en decir si el número que tenemos que descubrir es menor o mayor. Le agregue mas dificultad por medio de niveles,en el nivel 1 el programa elige entre 1 y 50,en el nivel dos de 1 a 200, nivel 3 de 1 a 500, nivel 4 de 1 a 700 y el nivel mas difícil de 1 a mil.
Tiene una lista de usuarios que acertaron y los ordena de mayor a menor(bueno ese detalle todavía no lo resuelvo, espero que a ustedes se les ocurra una brillante idea y la compartan) donde los puntos se dan asi: 1000 porque juega en el nivel 5, 700 porque juega en el nivel 4 y asi sucesivamente, agregando a esas cifras el número de intentos que no se uso. Ejemplo: postapase juega en el nivel 5 y acierta en el primer intento son 10 puntos mas (1010), otro usuario juega en el nivel 3 y acierta en el 5 intento, los punto son 505 y así con lo demás. Bueno algo es algo :)
Fmain:
' Gambas class file
Public espandir As Boolean = False
Public offniveles As Boolean = True
Public Nmagico As Float
Public Ningresado As Integer
Public intentos As Integer
Public puntaje As Integer
Public nomJugador As String
Public Const N1 As Integer = 50
Public Const N2 As Integer = 200
Public Const N3 As Integer = 500
Public Const N4 As Integer = 700
Public Const N5 As Integer = 1000
Public nivelelegido As Integer
Public Sub Form_Open()
' exxpandir(False)
Me.Center
Me.Width = 210
ValueBox1.Enabled = False
nivelelegido = N1
nivel1.Checked = True
intentos = 10
Labintentos.Visible = False
offniveles = False
End
Public Function nivelesNO(offniveles As Boolean) As Boolean
If offniveles = True Then
nivel1.Enabled = False
nivel2.Enabled = False
nivel3.Enabled = False
nivel4.Enabled = False
nivel5.Enabled = False
Else
nivel1.Enabled = True
nivel2.Enabled = True
nivel3.Enabled = True
nivel4.Enabled = True
nivel5.Enabled = True
Endif
Return
End
Public Sub btnborrar_Click()
ValueBox1.Value = 0
ValueBox1.SetFocus
End
Public Sub btnVer_Click()
Dim agrandar, achicar As Integer
If espandir = True Then
For achicar = 595 To 210 Step -1
FMain.Width = achicar
Wait 0.00049
Next
espandir = False
btnVer.Text = "V\nE\nR\n" "\nR\nE\nC\nO\nR\nE\nS"
Else
For agrandar = 210 To 595 Step 1
FMain.Width = agrandar
Wait 0.00049
Next
espandir = True
btnVer.Text = "O\nC\nU\nL\nT\nA\nR"
Endif
End
Public Sub btnSalir_Click()
Me.Close
End
Public Sub btnComenzar_Click()
Dim achicar As Integer
Labinfo.Text = ""
Labintentos.Text = ""
If espandir = True Then
For achicar = 595 To 210 Step -1
FMain.Width = achicar
Wait 0.00049
Next
espandir = False
btnVer.Text = "V\nE\nR\n" "\nR\nE\nC\nO\nR\nE\nS"
usuario.Show
Else
btnVer.Enabled = False
Labintentos.Caption = ""
Labinfo.Caption = ""
usuario.Show
intentos = 10
Randomize
Nmagico = Int(Rnd(1, nivelelegido))
ValueBox1.SetFocus
Print Nmagico
Print nivelelegido
Endif
End
Public Sub btnIngresar_Click()
Dim level As Integer
If ValueBox1.Text = 0 Then
Message.Info("El numero mínimo es 1")
ValueBox1.Value = 1
Else
If ValueBox1.Text = Null Then
Message.Info("ingrese un número para continuar")
ValueBox1.Text = ""
ValueBox1.SetFocus
Return
Else
Labintentos.Caption = nomJugador & "\nTe quedan " & intentos & "\n restantes para adivinar\n el número Magico"
Ningresado = ValueBox1.Text
If Ningresado = " " Then
Message.Info("Ingrese un numero")
Else
If intentos = 1 Then
Labinfo.Caption = "Has perdido"
Labintentos.Caption = nomJugador & "\n suerte para\n el próximo juego"
ValueBox1.Text = 0
btnborrar.Enabled = False
btnIngresar.Enabled = False
ValueBox1.Enabled = False
btnComenzar.Enabled = True
nivelesNO(False)
Else
If Ningresado > nivelelegido Then
Select Case nivelelegido
Case 50
level = 1
Case 200
level = 2
Case 500
level = 3
Case 700
level = 4
Case 1000
level = 5
End Select
Message.Info("Esta jugando en nivel: " & level & "\n" & "eliga un número menor o igual a " & nivelelegido)
ValueBox1.Text = ""
ValueBox1.SetFocus
Else
If Ningresado >= 1001 Then
Message.Info("Elija un número entre 1 y 1000")
Else
Select Case Ningresado
Case Nmagico
Labintentos.Caption = "FELICITACIONES \n HAS ACERTADO!!!"
Labinfo.Caption = "GANASTE!!!"
puntaje = nivelelegido + intentos
ListBox1.Add(puntaje & " <= " & nomJugador & " => " & Date)
ListBox1.Sorted = True
btnVer.Enabled = True
offniveles = False
nivelesNO(offniveles)
ValueBox1.Value = 0
ValueBox1.Enabled = False
btnIngresar.Enabled = False
btnComenzar.Enabled = True
btnborrar.Enabled = False
Case Else
If Ningresado > Nmagico Then
Labinfo.Caption = "numero menor"
Dec intentos
Labintentos.Caption = nomJugador & "\nTe quedan " & intentos & "\n restantes para adivinar\n el número Magico"
Else
Labinfo.Caption = "numero mayor"
Dec intentos
Labintentos.Caption = nomJugador & "\nTe quedan " & intentos & "\n restantes para adivinar\n el número Magico"
Labintentos.Refresh
Endif
End Select
Endif
Endif
Endif
Endif
Endif
Endif
Print intentos
End
Public Sub Form_KeyRelease()
If ValueBox1.Text <> Null Then
btnIngresar.Enabled = True
Else
Return
Endif
End
Public Sub nivel3_Click()
nivelelegido = N3
btnNivel.Text = "N3"
nivel3.Checked = True
nivel2.Checked = False
nivel1.Checked = False
nivel4.Checked = False
nivel5.Checked = False
End
Public Sub nivel1_Click()
nivelelegido = N1
btnNivel.Text = "N1"
nivel1.Checked = True
nivel2.Checked = False
nivel3.Checked = False
nivel4.Checked = False
nivel5.Checked = False
End
Public Sub nivel2_Click()
nivelelegido = N2
btnNivel.Text = "N2"
nivel2.Checked = True
nivel1.Checked = False
nivel3.Checked = False
nivel4.Checked = False
nivel5.Checked = False
End
Public Sub nivel4_Click()
nivelelegido = N4
btnNivel.Text = "N4"
nivel4.Checked = True
nivel2.Checked = False
nivel3.Checked = False
nivel1.Checked = False
nivel5.Checked = False
End
Public Sub nivel5_Click()
nivelelegido = N5
btnNivel.Text = "N5"
nivel5.Checked = True
nivel2.Checked = False
nivel3.Checked = False
nivel4.Checked = False
nivel1.Checked = False
End
Public Sub salir_Click()
Me.Close
End
Public Sub acercade_Click()
info.Show
End
usuario:
' Gambas class file
Public Sub btnAceptar_Click()
If Txtnombre.Text = Null Then
Message.Info("Ingrese su nombre para continuar")
Return
Else
FMain.intentos = 10 ' agregue esta línea pues mostraba los intentos que restaban al jugador anterior :oops:
FMain.btnborrar.Enabled = True
FMain.Enabled = True
FMain.nomJugador = UCase$(Txtnombre.Text)
FMain.Labintentos.Visible = True
FMain.Labintentos.Caption = FMain.nomJugador & "\nTe quedan " & FMain.intentos & "\n restantes para adivinar\n el número Magico"
FMain.btnComenzar.Enabled = False
FMain.offniveles = True
FMain.nivelesNO(FMain.offniveles)
Endif
FMain.ValueBox1.Enabled = True
FMain.ValueBox1.SetFocus
FMain.btnIngresar.Enabled = True
Me.Close
End
Public Sub Form_Open()
FMain.Enabled = False
Me.Center
Me.Title = "Ingrese su nombre"
End
Public Sub btnCancelar_Click()
Me.Close
FMain.Enabled = True
FMain.btnVer.Enabled = False
End
info:
' Gambas class file
Public Sub Form_Open()
Me.Center
End
Public Sub Form_Leave()
Me.Close
End
Código fuente: AdivinarNumero-0.0.1.tar.gz
Le agregue una lista de los numeros ingresados,
guarda recores en un archivo *.lst
sigue con errores pero.... se lo dejo para que practiquen modificaciones o agregados
AdivinarNumero-0.0.2.tar.gz
AdivinarNumero_v0.0.3.tar.gz
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario