▷ Juego del ahorcado en Visual Basic 6.0


En este post veremos como crear el juego del ahorcado en visual basic 6.0.


Elementos del formulario.

Como pueden observar en esta ventana tenemos tres frames visibles: ingreso, info, errores y uno que esta oculto.


* Dentro del frame ingreso tenemos un textbox y un boton. En el textbox que esta dentro del frame ingreso tendremos que escribir una palabra, los limites de la palabra son de de: 4 dígitos como mínimo y 13 dígitos como máximo (Solo se admiten letras MAYUSCULAS). Una vez ingresada la palabra, presionamos jugar.

* Dentro del frame info tenemos dos labels y tenemos un botón oculto. Los labels los usamos para mostrar texto informativo y el botón para reiniciar el juego (El botón nos aparecerá cuando hayamos perdido o ganado el juego).

* Dentro del frame errores tenemos un dibujo en el cual se irán añadiendo las partes del muñeco cada vez que ingresemos una letra incorrecta.

* El cuarto frame se encuentra ubicado detrás del frame ingreso, en este frame tenemos una matriz de de labels con index de 0 a 13.El frame palabra sera visible una vez que ingresemos una palabra en el textbox del frame ingreso y presionemos jugar.


Funcionamiento del programa:

Al ejecutar el programa se nos abrirá la siguiente ventana. 


En uno de los dos labels (Estado) ubicados en el frame info nos aparecerá el siguiente mensaje "Ingrese una palabra y presione Jugar".Para que nos aparezca este mensaje escribimos dentro de Private Sub Form_Load() lo siguiente.


Escribimos una palabra y damos click en jugar. Yo voy a escribir la palabra MESA.


Al presionar el botón Jugar que tiene por nombre "start" ocurrirá lo siguiente.
Private Sub start_Click()

 For I = 0 To 13
  J(I).Text = ""
 Next I

 PA = palabra.Text
 CANT = Len(PA)    
 
 If (PA = "") Then 
  Estado.Caption = "Ingrese una palabra."  
 Else
 
  If (CANT < 4) Then
    Estado.Caption = "Palabra muy corta"
   ElseIf CANT > 13 Then
    Estado.Caption = "Superaste el numero de letras permitidas"
    CANT = 0    
  Else  
    infoNdigit.Caption = "La palabra ingresada tiene " & CANT & " dígitos"
    ilp.Visible = False
    pbra.Visible = True
    Estado.Caption = "Comienza el juego"
    juego.Enabled = True                           
  End If
 End If

End Sub
Con el primer ciclo for limpiamos todos los labels, esto lo podemos hacer gracias a que estamos utilizando una matriz de controles.


La variable PA, va a almacenar la palabra que ingresemos en el textbox del frame ingreso. Para determinar el numero de caracteres que tiene la palabra ingresada utilizamos la función Len, la función len devuelve un Long que contiene el número de caracteres en una cadena o el número de bytes necesarios para almacenar una variable, CANT = Len(PA). Almacenamos esos datos en la variable "CANT".

Verificamos, si PA = "", si no hay ninguna palabra escrita en el textbox, imprimimos en el label lo siguiente Estado.Caption = "Ingrese una palabra.". Caso contrario.

Verificamos cuantos caracteres tiene esa palabra, si la palabra ingresada tiene menos de cuatro caracteres imprimimos el mensaje Estado.Caption = "Palabra muy corta", si la palabra tiene mas de 13 caracteres, escribimos lo siguiente Estado.Caption = "Superaste el numero de letras permitidas".


Si ninguna de las dos opciones anteriores es verdadera, entonces:

* Imprimimos en el segundo label del frame info lo siguiente infoNdigit.Caption = "La palabra ingresada tiene " & CANT & " dígitos", con esto sabremos el numero de letras que tiene la palabra ingresada. Como yo puse la palabra MESA, me aparecerá: "La palabra ingresada tiene 4 dígitos".
* Ocultamos el frame info que tiene por nombre "ilp" ilp.Visible = False y mostramos el frame palabra que tiene por nombre "pbra" pbra.Visible = True.
* En el label estado imprimimos: Estado.Caption = "Comienza el juego"
* Activamos un temporizador juego.Enabled = True


Temporizador juego.

Dentro del temporizador juego tenemos los siguiente:
Private Sub juego_Timer()  
  
  I = 0
  N = 0
  Do While I < CANT + 100
    LE = InputBox("INGRESE UNA LETRA, RECUERDE QUE SOLO SE ADMITEN LETRAS MAYUSCULAS.", "Ingreso", "", 0, 0)
    XX = 0
      For B = 1 To CANT
        LE2 = Mid(PA, B, 1)
        
      If LE = LE2 Then
         
       Estado.Caption = "Letra correcta: " & LE
            
         Select Case B               
          Case 1
         J(0).Text = LE
          Case 2
         J(1).Text = LE
          Case 3
         J(2).Text = LE
          Case 4
         J(3).Text = LE
          Case 5
         J(4).Text = LE
          Case 6
         J(5).Text = LE
          Case 7
         J(6).Text = LE
          Case 8
         J(7).Text = LE
          Case 9
         J(8).Text = LE
          Case 10
         J(9).Text = LE
          Case 11
         J(10).Text = LE
          Case 12
         J(11).Text = LE
          Case 13
         J(12).Text = LE
          Case 14
         J(13).Text = LE

        End Select
               
        XX = 1
            
       End If
      Next B

      If XX = 0 Then
      
        N = N + 1
        Estado.Caption = "Letra incorrecta: " & LE
        
      End If
        
      Select Case N
      
       Case 1
         N1.Visible = True
         N11.Visible = True
       Case 2
         N2.Visible = True
       Case 3
         N6.Visible = True
       Case 4
         N7.Visible = True
       Case 5
         N8.Visible = True
       Case 6
         N9.Visible = True
       Case 7
         N10.Visible = True
    
      End Select
    
      G = 0
      
      For P = 0 To CANT - 1
      
        If J(P) <> "" Then
    
          G = G + 1
        End If
      Next P
    
      If G = CANT Then
      
        juego.Enabled = False
        MsgBox "Ganaste"
        Estado.Caption = " " 
        PA = ""
        I = CANT + 100
        vj.Visible = True
        
      End If    
    
      If N = 8 Then
        juego.Enabled = False
        MsgBox "Perdiste"
        Estado.Caption = "PALABRA INGRESADA: " & PA
        PA = ""
        I = CANT + 100
        vj.Visible = True
      End If
      I = I + 1
  Loop
End Sub
Abrimos un Do While, dento de este do while tenemos lo siguiente:

* Creamos un InputBox y lo ubicamos en la posición x (left) = 0 y y (top)= 0 aquí tendemos que ingresar las letras que creamos que puede tener la palabra que ingresamos previamente. Debemos hacerlo letra por letra. Estos valores se guardaran en la variable LE.



* Utilizamos la variable XX para comprobar. Si no se ingreso una letra o si la letra ingresada no coincide con alguna letra de la palabra ingresada, entonces XX vale 0.
* Creamos un ciclo for con una variable B este ciclo ira de 0 al numero de caracteres que contenga la palabra previamente ingresada.
* A continuación utilizamos la función "mid", la función mid devuelve una variante ( cadena ) que contiene un número específico de caracteres de una cadena. Los valores que nos entrega la función mid los guardamos en la variable LE2.

* Comparamos LE y LE2  si los valores son iguales: Imprimimos en el label estado, Estado.Caption = "Letra correcta: " & LE, abrimos un select case en cada caso tenemos este código J().Text = LE, buscamos que posición o posiciones coinciden con la letra ingresada e imprimimos la letra en el label correspondiente. Ejemplo: 

Yo ingrese la palabra MESA, ingrese en el ImputBoxla letra E. Como la letra E si coincide es decir si esta incluida en la palabra MESA entonces, buscamos su posición. E esta en la posición 2 entonces imprimimos en la posición (1) de la matriz de controles del label "J " la letra E.

    Case 2
        J(1).Text = LE



*  Salimos del select case y le damos a la variable XX el valor de 1.
*  A continuación tenemos una condición if XX = 0 then, esta condición se cumple en el caso de que ingresemos una letra incorrecta. Entonces, si esta condición es verdadera ocurre lo siguiente:
* Sumamos la variable N e imprimimos en el label estado: Estado.Caption = "Letra incorrecta: " & LE.


* Abrimos un select case para la letra N. Cada vez que ingresemos una letra incorrecta ira apareciendo una parte del muñeco.

* Abrimos otro ciclo for con la variable P que ira de 0 hasta el numero de letras que contenga la palabra previamente ingresada. Dentro de este ciclo for tenemos lo siguiente.
* Si If J(P) <> " " Then, Quiere decir que: si tenemos una letra en cualquiera de las posiciones de la matriz de controles que creamos con los labels , en otras palabras si adivinamos una letra de la palabra ingresada , se sumara una variable G = G + 1. 
* Cuando la variable G sea igual al numero de caracteres (letras) de la palabra ingresada If G =CANT Then, quiere decir que adivinamos la palabra, entonces como adivinamos la palabra hacemos lo siguiente:

1.- Desactivamos el temporizador, juego.Enabled = False.
2.- En un MsgBox escribimos ganaste, MsgBox "Ganaste".
3.- impiamos el label estado. Estado.Caption = " " 
4.- Limpiamos la variable PA. PA = ""
5.- Esta condicion es para llegar al limite del do while. I = CANT + 100
6.- En el formulario info hacemos visible el botón "Volver a jugar". vj.Visible = True



* Si la variable N = 8 (Se formo todo el muñeco), Perdimos y sucede lo siguiente.
1.- Desactivamos el temporizador, juego.Enabled = False.
2.- En un MsgBox escribimos perdiste, MsgBox "Perdiste".
3.- limpiamos el label estado. Estado.Caption = "PALABRA INGRESADA: " & PA.
4.- Limpiamos la variable PA. PA = "".
5.- Esta condición es para llegar al limite del do while. I = CANT + 100.
6.- En el formulario info hacemos visible el botón "Volver a jugar". vj.Visible = True.



* Sumamos la variable. I I = I + 1
* Cerramos el ciclo DoWhile. Loop 


Al presionar el botón "Volver a jugar"  que tiene por nombre "vj" ocurrirá lo siguiente.
Private Sub vj_Click()

palabra.Text = ""
  lp.Visible = True
  vj.Visible = False
  Estado.Caption = "Ingrese una palabra y presione Jugar"
  infoNdigit.Caption = ""
  N = 0

  N1.Visible = False
  N2.Visible = False
  N3.Visible = False
  N4.Visible = False
  N5.Visible = False
  N6.Visible = False
  N7.Visible = False
  N8.Visible = False
  N9.Visible = False
  N10.Visible = False
  N11.Visible = False
End Sub
* Limpiamos el textbox Palabra.
* Hacemos visible el frame "Ingreso".
* Ocultamos el frame "Palabra".
* Imprimimos un mensaje en el label estado Estado.Caption = "Ingrese una palabra y presione Jugar".
* Limpiamos el label infoNdigit.Caption = "".
* Enceramos la variable N y ocultamos las partes del muñeco.


DESCARGA LOS ARCHIVOS DE VISUAL BASIC AQUÍ:

0/Post a Comment/Comments