B4A en español - Juan Antonio Villalpando
(BASIC4Android)
-- Tutorial de B4A --
Volver al índice del tutorial
____________________________
83.- Tres en raya.
Aunque en los tutoriales de Basic4Android ya viene una versión de tres en raya, que en el entorno anglosajón se llama Tick-Tack-Toe, aquí voy a comentar otra forma de hacerlo.
Recordamos que estos tutoriales son de iniciación y que no se pretende crear código complicados, solo códigos de aprendizaje básico, un programador más avanzado realizaría estos códigos de manera más eficiente, pero para el objetivo que pretendo creo que puede servir a los lectores.
_______________
- Designer.
Designer
|
|
- Vamos al Designer y creamos un "layout" como muestro en la imagen de la izquierda.
Un Panel.
Nueve botones sobre el Panel en el orden mostrado.
Dos Label.
Tres botones en la parte de abajo.
Debemos asegurarnos que los Botones 1 al 9 tenga de "Parent" el Panel1, es decir que estén situados sobre el Panel1, eso lo podemos hacer/consultar desde el Designer.
|
_______________
- Código.
Código
|
Sub Process_Globals
' Juan Antonio Villalpando
' juana1991@yahoo.com
' Noviembre 2013
End Sub
Sub Globals
Dim jugador1, jugador2 As Boolean
a1 = 1 : a2 = 2 : a3 = 3 : a4 = 4 : a5 = 5 : a6 = 6 : a7 = 7 : a8 = 8 : a9 = 9
b1 = 1 : b2 = 2 : b3 = 3 : b4 = 4 : b5 = 5 : b6 = 6 : b7 = 7 : b8 = 8 : b9 = 9
Dim Button1, Button2, Button3, Button4, Button5, Button6, Button7, Button8, Button9 As Button
Dim Button10, Button11, Button12 As Button
Dim Label1, Label2 As Label
Dim Panel1 As Panel
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("layout")
For Each Button As View In Panel1
Button.Tag=Button.Background 'Guarda el color de fondo inicial del Botón
Next
Button10.text="Jugador 1 X"
Button11.text="Jugador 2 O"
Button12.text="Nueva partida" Label2.text="Elige jugador que comienza."
Inicio
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Private Sub Button1_Click
If jugador1 Then
Button1.Color=Colors.Yellow
Button1.Text = "X"
jugador1 = False
jugador2 = True
a1 = 0
Else
Button1.Color=Colors.Red
Button1.Text = "O"
jugador1 = True
jugador2 = False
b1 = 0
End If
Button1.Enabled = False
Consulta
End Sub
Private Sub Button2_Click
If jugador1 Then
Button2.Color=Colors.Yellow
Button2.Text = "X"
jugador1 = False
jugador2 = True
a2 = 0
Else
Button2.Color=Colors.Red
Button2.Text = "O"
jugador1 = True
jugador2 = False
b2 = 0
End If
Button2.Enabled = False
Consulta
End Sub
Private Sub Button3_Click
If jugador1 Then
Button3.Color=Colors.Yellow
Button3.Text = "X"
jugador1 = False
jugador2 = True
a3 = 0
Else
Button3.Color=Colors.Red
Button3.Text = "O"
jugador1 = True
jugador2 = False
b3 = 0
End If
Button3.Enabled = False
Consulta
End Sub
Private Sub Button4_Click
If jugador1 Then
Button4.Color=Colors.Yellow
Button4.Text = "X"
jugador1 = False
jugador2 = True
a4 = 0
Else
Button4.Color=Colors.Red
Button4.Text = "O"
jugador1 = True
jugador2 = False
b4 = 0
End If
Button4.Enabled = False
Consulta
End Sub
Private Sub Button5_Click
If jugador1 Then
Button5.Color=Colors.Yellow
Button5.Text = "X"
jugador1 = False
jugador2 = True
a5 = 0
Else
Button5.Color=Colors.Red
Button5.Text = "O"
jugador1 = True
jugador2 = False
b5 = 0
End If
Button5.Enabled = False
Consulta
End Sub
Private Sub Button6_Click
If jugador1 Then
Button6.Color=Colors.Yellow
Button6.Text = "X"
jugador1 = False
jugador2 = True
a6 = 0
Else
Button6.Color=Colors.Red
Button6.Text = "O"
jugador1 = True
jugador2 = False
b6 = 0
End If
Button6.Enabled = False
Consulta
End Sub
Private Sub Button7_Click
If jugador1 Then
Button7.Color=Colors.Yellow
Button7.Text = "X"
jugador1 = False
jugador2 = True
a7 = 0
Else
Button7.Color=Colors.Red
Button7.Text = "O"
jugador1 = True
jugador2 = False
b7 = 0
End If
Button7.Enabled = False
Consulta
End Sub
Private Sub Button8_Click
If jugador1 Then
Button8.Color=Colors.Yellow
Button8.Text = "X"
jugador1 = False
jugador2 = True
a8 = 0
Else
Button8.Color=Colors.Red
Button8.Text = "O"
jugador1 = True
jugador2 = False
b8 = 0
End If
Button8.Enabled = False
Consulta
End Sub
Private Sub Button9_Click
If jugador1 Then
Button9.Color=Colors.Yellow
Button9.Text = "X"
jugador1 = False
jugador2 = True
a9 = 0
Else
Button9.Color=Colors.Red
Button9.Text = "O"
jugador1 = True
jugador2 = False
b9 = 0
End If
Button9.Enabled = False
Consulta
End Sub
Private Sub Button10_Click
jugador1 = True
Button10.Enabled = False
Button11.Enabled = False
End Sub
Private Sub Button11_Click
jugador2 = True
Button10.Enabled = False
Button11.Enabled = False
End Sub
Private Sub Button12_Click
Inicio
End Sub
Sub Inicio
Dim jugador1, jugador2 As Boolean
a1 = 1 : a2 = 2 : a3 = 3 : a4 = 4 : a5 = 5 : a6 = 6 : a7 = 7 : a8 = 8 : a9 = 9
b1 = 1 : b2 = 2 : b3 = 3 : b4 = 4 : b5 = 5 : b6 = 6 : b7 = 7 : b8 = 8 : b9 = 9
For Each Button As View In Panel1
Button.Enabled = True
Button.Color=Colors.Gray
Dim b As Button = Button
b.Text=""
' Cambia el color del Texto del Botón
' b.TextColor = Colors.ARGB(255,139,0,0)
Button.Background=Button.Tag ' Recuperz el color de fondo inicial del Botón
Next
Label1.Text = ""
Button10.Enabled = True
Button11.Enabled = True
End Sub
Sub Consulta
If a1 = a2 AND a2 = a3 Then Ganador
If a4 = a5 AND a5 = a6 Then Ganador
If a7 = a8 AND a8 = a9 Then Ganador
If a1 = a4 AND a4 = a7 Then Ganador
If a2 = a5 AND a5 = a8 Then Ganador
If a3 = a6 AND a6 = a9 Then Ganador
If a1 = a5 AND a5 = a9 Then Ganador
If a3 = a5 AND a5 = a7 Then Ganador
If b1 = b2 AND b2 = b3 Then Ganador
If b4 = b5 AND b5 = b6 Then Ganador
If b7 = b8 AND b8 = b9 Then Ganador
If b1 = b4 AND b4 = b7 Then Ganador
If b2 = b5 AND b5 = b8 Then Ganador
If b3 = b6 AND b6 = b9 Then Ganador
If b1 = b5 AND b5 = b9 Then Ganador
If b3 = b5 AND b5 = b7 Then Ganador
End Sub
Sub Ganador
If jugador1 Then
Label1.Text = "Ha ganado el 2"
Else
Label1.Text = "Ha ganado el 1"
End If
End Sub
|
_________________
- Comentario.
- Comenzamos eligiendo el jugador que inicia el juego: Jugador1 X (Amarillo) o Jugador2 O (Rojo).
- Alternativamente van pulsando Botones. El primer jugador que consigue pulsar tres en línea resulta ganador.
________________________________
|