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
________________________________
|