Advertisement
jsbsan

numero de grupos formados

Oct 4th, 2013
2,744
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
GAMBAS 2.77 KB | None | 0 0
  1. Public Function comprueba_linea(n As Integer, jugador As Integer) As Variant[]
  2.  
  3.   Dim i, j, a As Integer
  4.   Dim ganador As Integer = 0
  5.   Dim num_lineas As Integer = 0
  6.   Dim lineas_posibles As Integer = 8 - n
  7.   Dim cuaterna, cuaterna1, cuaterna2, cuaterna3, cuaterna4 As New Integer[]
  8.   'buscas linea horizontal
  9.   For i = 0 To 6
  10.     For j = 0 To lineas_posibles - 1
  11.       cuaterna.Clear()
  12.       For a = 0 To n - 1
  13.         cuaterna.Add(Me.casillas[i, j + a])
  14.        
  15.       Next
  16.       If Me.casillas[i, j] <> 0 And If comparaCuaternaElemento(cuaterna, Me.casillas[i, j], n) Then
  17.         ganador = Me.casillas[i, j]
  18.         If ganador = jugador Then
  19.          
  20.           num_lineas = num_lineas + 1
  21.         Endif
  22.       Endif
  23.     Next
  24.   Next
  25.  
  26.   'buscar linea vertical
  27.   For i = 0 To 6
  28.     For j = 0 To lineas_posibles - 1
  29.       cuaterna.Clear()
  30.       For a = 0 To n - 1
  31.         cuaterna.Add(Me.casillas[j + a, i])
  32.       Next
  33.       If Me.casillas[j, i] <> 0 And comparaCuaternaElemento(cuaterna, Me.casillas[j, i], n) Then
  34.         ganador = Me.casillas[j, i]
  35.         If ganador = jugador Then
  36.           num_lineas = num_lineas + 1
  37.          
  38.         Endif
  39.       Endif
  40.     Next
  41.   Next
  42.   '  Goto fincomprobacion
  43.   'buscar linea diagonal
  44.   For i = 0 To 3
  45.     For j = 0 To lineas_posibles - i - 1
  46.       cuaterna1.Clear()
  47.       cuaterna2.Clear()
  48.       cuaterna3.Clear()
  49.       cuaterna4.Clear()
  50.       For a = 0 To n - 1
  51.         cuaterna1.Add(Me.casillas[i + j + a, j + a])
  52.         cuaterna2.Add(Me.casillas[j + a, i + j + a])
  53.         cuaterna3.Add(Me.casillas[i + j + a, 6 - (j + a)])
  54.         cuaterna4.Add(Me.casillas[j + a, 6 - (i + j + a)])
  55.       Next
  56.       If Me.casillas[i + j, j] <> 0 And comparaCuaternaElemento(cuaterna1, cuaterna1[0], n) Then
  57.         ganador = cuaterna1[0]
  58.         If ganador = jugador Then
  59.           num_lineas += 1
  60.         Endif
  61.        
  62.       Else
  63.         If Me.casillas[j, i + j] <> 0 And If comparaCuaternaElemento(cuaterna2, cuaterna2[0], n) Then
  64.           ganador = cuaterna2[0]
  65.           If ganador = jugador Then
  66.             num_lineas += 1
  67.           Endif
  68.         Else
  69.           If Me.casillas[i + j, 6 - j] <> 0 And If comparaCuaternaElemento(cuaterna3, cuaterna3[0], n) Then
  70.             ganador = cuaterna3[0]
  71.             If ganador = jugador Then
  72.               num_lineas += 1
  73.             Endif
  74.           Else
  75.             If Me.casillas[j, 6 - (i + j)] <> 0 And If comparaCuaternaElemento(cuaterna4, cuaterna4[0], n) Then
  76.               ganador = cuaterna4[0]
  77.               If ganador = jugador Then
  78.                
  79.                 num_lineas += 1
  80.               Endif
  81.             Endif  
  82.           Endif  
  83.         Endif  
  84.       Endif  
  85.      
  86.     Next
  87.   Next
  88.  
  89.   Return [ganador, num_lineas]
  90.  
  91. End
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement