|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial

____________________________

62.- Elajorcao.

- "Elajorcao" es el conocido juego de palabras donde tienes que adivinar letra a letra la palabra propuesta.

- Cuando pulsamos el botón "Nueva palabra", se crean en la pantalla los casilleros correspondientes a la cantidad de letras de esa palabra (cuadros amarillos).
La palabra se obtendrá aleatoriamente de una de las que compone el archivo palabras.txt.

- Cada vez que escribamos una letra en el EditText1 y pulsemos el botón "Comprobar letra", se comprobará si la palabra contiene esa letra, en caso que la contenga, la escribe en su casillero correspondiente. Si no la contiene, escribe un mensaje de "La letra x no está".

- Las palabras que pueden salir se encuentra en el archivo palabras.txt que está guardado en la carpeta Files.

- Ese archivo contendrá palabras, una en cada línea, con letras mayúsculas (sin acentos). Ejemplo:

HOLA
ORDENADOR
CARRETERA
SONRISA
TELEVISOR
IMPRESORA
MONTE
PLAYA

_________________

- Designer.
Designer - Layout

Para poner la pantalla en horizontal, pulsamos:

Ctrl F11

Creamos mediante el Designer un layout.
Le llamamos Layout.

Situamos un:

Label1
Label2 ..... Text: Intentos:
EditText1
Button1 .... Text: Nueva palabra
Button2 .... Text: Comprobar letra


_________________

- Código.

Aquí está el código, una vez más indicar que es un código de aprendizaje, no está optimizado y se podría haber realizado de otra manera.
He intentado crear un código que sea entendible por alguien que comienza en la programación.

Copia y pega este código en un nuevo proyecto
Sub Process_Globals
' Juan Antonio Villapando
' juana1991@yahoo.com
End Sub

Sub Globals
    Dim Labels(11), Label1, Label2 As Label 
    Dim EditText1 As EditText
    Dim palabra, letra As String
    Dim longitud, intentos As Int
    palabra = ""
    Dim existe As Boolean
    Dim ancho, alto As Int
    ancho = 50dip :  alto = 50dip
    Dim k, alea As Int
    Dim TextReader1 As TextReader
    Dim line As String
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout") 

    ' Busca cuántas líneas o palabras componen el archivo palabras.txt
    TextReader1.Initialize(File.OpenInput(File.DirAssets, "palabras.txt"))   
    Do While line <> Null
        line = TextReader1.ReadLine
        k = k + 1
    Loop
    ' k es el número de líneas o palabras que contiene palabras.txt
    TextReader1.Close
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub Button1_Click
    ' Escribe la palabra en los casilleros.

    longitud = palabra.Length
    
    ' Borra la palabra anterior
    For x = 1 To 10
        Dim lbl As Label
        lbl.Initialize("Label") 
        lbl.Color = Colors.Black
        Activity.AddView(lbl, x * (ancho + 5dip)  - 35dip, 20dip, ancho, alto)
    Next
     
Buscapalabra
    
    ' Pone una palabra nueva
    longitud = palabra.Length
    For x = 1 To longitud
        Dim lbl As Label
        lbl.Initialize("Label") 
        lbl.TextSize = 24
        lbl.Color = Colors.Yellow
        lbl.TextColor = Colors.Red
        Activity.AddView(lbl, x * (ancho + 5dip)  - 35dip, 20dip, ancho, alto)
        Labels(x) = lbl
    Next
        Label2.Text = ""
        intentos = 0
        EditText1.RequestFocus
End Sub

Sub Button2_Click
     ' Comprueba si la letra del EditText se encuentra en la palabra.
     Label1.Text = ""
     existe = False
     intentos = intentos + 1
     Label2.Text = "Intentos = " & intentos
     letra = EditText1.Text.ToUpperCase ' Lo pasa a mayúscula.
     
     For n = 1 To longitud
     If letra = palabra.SubString2(n-1, n) Then
     Labels(n).Gravity = Bit.Or(Gravity.CENTER_VERTICAL, Gravity.CENTER_HORIZONTAL)
     Labels(n).Text = letra
     existe = True
     Else

     End If
     Next
     EditText1.Text = ""
     If existe = False Then
     Label1.Text = "La letra " & letra.ToUpperCase & " no está."
     End If
    
End Sub

Sub Buscapalabra
    ' Crea un número aleatorio
    ' Toma la línea correspondiente a ese número aleatorio.
    alea = Rnd(1, k)
    TextReader1.Initialize(File.OpenInput(File.DirAssets, "palabras.txt"))  
    For n = 1 To alea
     line = TextReader1.ReadLine
    Next
    TextReader1.Close
    palabra = line
    Label1.Text = line    
End Sub

      

- ¿Como establecer la pantalla horizontal?

Pulsas en Project / Orientations Supported / Landscape

________________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información