Skip to content

Instantly share code, notes, and snippets.

@Virako
Created November 7, 2012 01:04
Show Gist options
  • Save Virako/4028866 to your computer and use it in GitHub Desktop.
Save Virako/4028866 to your computer and use it in GitHub Desktop.
Rocamgo-ng
def get_liberties(self, pos, color):
""" Función que comprueba las libertades que tiene el grupo al que
pertenece la posición pasada por parámetro.
:Param pos: Posición perteneciente al grupo en la buscaremos si sus
vecinos pertenecen o no al grupo.
:Type pos: tuple.
:Param group: grupo de posiciones que se encuentran dentro del grupo.
:Type group: set. """
liberties = set()
group = self.get_group(pos, color)
neighbour = ((0, -1), (0, 1), (1, 0), (-1, 0))
for pos in group:
for n in neighbour:
pos_neig = (pos[0] - n[0], pos[1] - n[1])
if not self.goban[pos_neig[0]][pos_neig[1]]:
liberties.add(pos_neig)
return liberties
def is_last_liberty(self, pos, color):
""" Comprobamos que la posición dada sea la última libertad del grupo.
:Param pos: Posición perteneciente al grupo en la buscaremos si sus
vecinos pertenecen o no al grupo.
:Type pos: tuple.
:Param group: grupo de posiciones que se encuentran dentro del grupo.
:Type group: set. """
neighbour = ((0, -1), (0, 1), (1, 0), (-1, 0))
for n in neighbour:
pos_neig = (pos[0] - n[0], pos[1] - n[1])
if len(get_liberties(pos_neig, color)) == 1:
return True
return False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment