Public Function comprueba_linea_Cuatro(n As Integer, jugador As Integer) As Variant[] \'devuelve ganador y linea formada de 4 fichas
Dim i, j, a As Integer
Dim ganador As Integer = 0
Dim num_lineas As Integer = 0
Dim lineas_posibles As Integer = 8 - n
Dim cuaterna, cuaterna1, cuaterna2, cuaterna3, cuaterna4 As New Integer[]
Dim linea, linea1, linea2, linea3, linea4 As New Integer[]
\'buscas linea horizontal
For i = 0 To 6
For j = 0 To lineas_posibles - 1
cuaterna.Clear()
linea.Clear()
For a = 0 To n - 1
cuaterna.Add(Me.casillas[i, j + a])
linea.Add(i)
linea.Add(j + a)
Next
If Me.casillas[i, j] <> 0 And If comparaCuaternaElemento(cuaterna, Me.casillas[i, j], n) Then
ganador = Me.casillas[i, j]
Return [ganador, linea]
Endif
Next
Next
\'buscar linea vertical
For i = 0 To 6
For j = 0 To lineas_posibles - 1
cuaterna.Clear()
linea.Clear()
For a = 0 To n - 1
cuaterna.Add(Me.casillas[j + a, i])
linea.Add(j + a)
linea.Add(i)
Next
If Me.casillas[j, i] <> 0 And comparaCuaternaElemento(cuaterna, Me.casillas[j, i], n) Then
ganador = Me.casillas[j, i]
Return [ganador, linea]
Endif
Next
Next
\'buscar linea diagonal
For i = 0 To 3
For j = 0 To lineas_posibles - i - 1
cuaterna1.Clear()
cuaterna2.Clear()
cuaterna3.Clear()
cuaterna4.Clear()
linea1.Clear()
linea2.Clear()
linea3.Clear()
linea4.Clear()
For a = 0 To n - 1
cuaterna1.Add(Me.casillas[i + j + a, j + a])
linea1.Add(i + j + a)
linea1.Add(j + a)
cuaterna2.Add(Me.casillas[j + a, i + j + a])
linea2.Add(j + a)
linea2.Add(i + j + a)
cuaterna3.Add(Me.casillas[i + j + a, 6 - (j + a)])
linea3.Add(i + j + a)
linea3.Add(6 - (j + a))
cuaterna4.Add(Me.casillas[j + a, 6 - (i + j + a)])
linea4.Add(j + a)
linea4.Add(6 - (i + j + a))
Next
If Me.casillas[i + j, j] <> 0 And comparaCuaternaElemento(cuaterna1, cuaterna1[0], n) Then
ganador = cuaterna1[0]
Return [ganador, linea1]
Else
If Me.casillas[j, i + j] <> 0 And If comparaCuaternaElemento(cuaterna2, cuaterna2[0], n) Then
ganador = cuaterna2[0]
Return [ganador, linea2]
Else
If Me.casillas[i + j, 6 - j] <> 0 And If comparaCuaternaElemento(cuaterna3, cuaterna3[0], n) Then
ganador = cuaterna3[0]
Return [ganador, linea3]
Else
If Me.casillas[j, 6 - (i + j)] <> 0 And If comparaCuaternaElemento(cuaterna4, cuaterna4[0], n) Then
ganador = cuaterna4[0]
Return [ganador, linea4]
Endif
Endif
Endif
Endif
Next
Next
Return [0, 0]
End