|     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

____________________________

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.

________________________________

- 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