Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created December 26, 2021 19:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/03d3fc2d58bcc045e05f4295536d54dc to your computer and use it in GitHub Desktop.
Save parzibyte/03d3fc2d58bcc045e05f4295536d54dc to your computer and use it in GitHub Desktop.
def obtener_conteo_derecha(fila, columna, color, tablero):
fin_columnas = len(tablero[0])
contador = 0
for i in range(columna, fin_columnas):
if contador >= CONECTA:
return contador
if tablero[fila][i] == color:
contador += 1
else:
contador = 0
return contador
def obtener_conteo_izquierda(fila, columna, color, tablero):
contador = 0
# -1 porque no es inclusivo
for i in range(columna, -1, -1):
if contador >= CONECTA:
return contador
if tablero[fila][i] == color:
contador += 1
else:
contador = 0
return contador
def obtener_conteo_abajo(fila, columna, color, tablero):
fin_filas = len(tablero)
contador = 0
for i in range(fila, fin_filas):
if contador >= CONECTA:
return contador
if tablero[i][columna] == color:
contador += 1
else:
contador = 0
return contador
def obtener_conteo_arriba(fila, columna, color, tablero):
contador = 0
for i in range(fila, -1, -1):
if contador >= CONECTA:
return contador
if contador >= CONECTA:
return contador
if tablero[i][columna] == color:
contador += 1
else:
contador = 0
return contador
def obtener_conteo_arriba_derecha(fila, columna, color, tablero):
contador = 0
numero_fila = fila
numero_columna = columna
while numero_fila >= 0 and numero_columna < len(tablero[0]):
if contador >= CONECTA:
return contador
if tablero[numero_fila][numero_columna] == color:
contador += 1
else:
contador = 0
numero_fila -= 1
numero_columna += 1
return contador
def obtener_conteo_arriba_izquierda(fila, columna, color, tablero):
contador = 0
numero_fila = fila
numero_columna = columna
while numero_fila >= 0 and numero_columna >= 0:
if contador >= CONECTA:
return contador
if tablero[numero_fila][numero_columna] == color:
contador += 1
else:
contador = 0
numero_fila -= 1
numero_columna -= 1
return contador
def obtener_conteo_abajo_izquierda(fila, columna, color, tablero):
contador = 0
numero_fila = fila
numero_columna = columna
while numero_fila < len(tablero) and numero_columna >= 0:
if contador >= CONECTA:
return contador
if tablero[numero_fila][numero_columna] == color:
contador += 1
else:
contador = 0
numero_fila += 1
numero_columna -= 1
return contador
def obtener_conteo_abajo_derecha(fila, columna, color, tablero):
contador = 0
numero_fila = fila
numero_columna = columna
while numero_fila < len(tablero) and numero_columna < len(tablero[0]):
if contador >= CONECTA:
return contador
if tablero[numero_fila][numero_columna] == color:
contador += 1
else:
contador = 0
numero_fila += 1
numero_columna += 1
return contador
def obtener_direcciones():
return [
'izquierda',
'arriba',
'abajo',
'derecha',
'arriba_derecha',
'abajo_derecha',
'arriba_izquierda',
'abajo_izquierda',
]
def obtener_conteo(fila, columna, color, tablero):
direcciones = obtener_direcciones()
for direccion in direcciones:
funcion = globals()['obtener_conteo_' + direccion]
conteo = funcion(fila, columna, color, tablero)
if conteo >= CONECTA:
return conteo
return 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment