Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement