En este tutorial actualizado, aprenderás a crear el clásico juego del ahorcado utilizando Visual Basic 6.0. Te guiaremos paso a paso por el proceso de diseño e implementación del juego, desde la interfaz gráfica hasta la lógica de control de palabras. Utilizaremos conceptos básicos de programación como condicionales, manejo de cadenas y eventos para ofrecer una experiencia interactiva. Ideal para principiantes en Visual Basic 6.0.
Elementos del Formulario
El formulario contiene los siguientes elementos organizados en "frames":
-
Frame Ingreso: Incluye un
TextBox
y un botón "Jugar". Aquí ingresarás la palabra que debe tener entre 4 y 13 caracteres. -
Frame Info: Tiene un
Label
para mostrar mensajes como errores o el estado del juego. También hay un botón "Reiniciar", que aparece cuando termina el juego. - Frame Errores: Muestra las partes del muñeco del ahorcado cuando ingresas letras incorrectas.
-
Frame Palabra: Aquí se muestra una matriz de
Labels
(índice de 0 a 13) donde se revelan las letras correctas.
Funcionamiento del Programa
Al Cargar el Formulario
Cuando se carga el formulario, se muestra el mensaje "Ingrese una palabra y
presione Jugar" en el Label
de gameInfo
:
Private Sub Form_Load()
gameInfo.Caption = "Ingrese una palabra y presione Jugar"
End Sub
Al Presionar el Botón "Jugar"
Cuando ingresas una palabra y presionas el botón "Jugar", se limpian los labels del contenedor de letras, se valida la palabra y se inicia el juego:
Private Sub play_Click()
For i = 0 To 13
letterContainer(i).Text = ""
Next i
word = wordTextBox.Text
wordLength = Len(word)
If (word = "") Then
gameInfo.Caption = "Error: Ingrese una palabra."
ElseIf (wordLength < 4) Then
gameInfo.Caption = "Error: Palabra muy corta"
ElseIf wordLength > 13 Then
gameInfo.Caption = "Error: Superaste el número de letras permitidas"
wordLength = 0
Else
wordInputFrame.Visible = False
wordViewFrame.Visible = True
gameInfo.Caption = "¡Comienza el juego!"
gameTimer.Enabled = True
For i = 0 To wordLength - 1
letterContainer(i).Visible = True
Next i
End If
End Sub
Temporizador del Juego
El temporizador controla las interacciones del juego. Cada vez que ingresa una letra, se verifica si está en la palabra:
Private Sub gameTimer_Timer()
letterInput = InputBox("Ingrese una letra.", "Ingreso", "", 0, 0)
If letterInput <> "" Then
For i = 1 To wordLength
letterInWord = Mid(word, i, 1)
If UCase(letterInput) = UCase(letterInWord) Then
isLetterInWord = True
gameInfo.Caption = "Letra correcta: " & letterInput
Select Case i
Case i
letterContainer(i - 1).Text = UCase(letterInput)
End Select
Else
isLetterInWord = False
End If
Next
If isLetterInWord = False Then
errors = errors + 1
gameInfo.Caption = "Letra incorrecta: " & letterInput
Select Case errors
Case 1
rope.Visible = True
head.Visible = True
Case 2
chest.Visible = True
Case 3
leftArm.Visible = True
Case 4
rightArm.Visible = True
Case 5
leftLeg.Visible = True
Case 6
rightLeg.Visible = True
End Select
End If
Else
gameInfo.Caption = "Error: Ingrese una letra"
End If
successes = 0
For i = 0 To wordLength - 1
If letterContainer(i) <> "" Then
successes = successes + 1
End If
Next
If successes = wordLength Then
gameTimer.Enabled = False
MsgBox "¡Felicidades, ganaste!"
gameInfo.Caption = "Ganador!!"
word = ""
playAgain.Visible = True
End If
If errors = 6 Then
gameTimer.Enabled = False
MsgBox "Perdiste"
gameInfo.Caption = "La palabra era: " & word
word = ""
playAgain.Visible = True
End If
End Sub
Función para Validar la Entrada de Letras
La función verifyKey
permite que solo se ingresen letras en el
TextBox
:
Function verifyKey(Tecla_Presionada)
Dim allowedKeys As String
allowedKeys = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz" & Chr(vbKeyBack)
If InStr(1, allowedKeys, Chr(Tecla_Presionada)) Then
verifyKey = Tecla_Presionada
Else
verifyKey = 0
End If
End Function
Reiniciar el Juego
Al presionar el botón "Volver a jugar", se restablece el estado del juego:
Private Sub playAgain_Click()
wordTextBox.Text = ""
wordInputFrame.Visible = True
playAgain.Visible = False
gameInfo.Caption = "Ingrese una palabra y presione Jugar"
errors = 0
wordViewFrame.Visible = False
rope.Visible = False
head.Visible = False
chest.Visible = False
leftArm.Visible = False
rightArm.Visible = False
leftLeg.Visible = False
rightLeg.Visible = False
End Sub
Publicar un comentario