Created
November 7, 2012 01:04
-
-
Save Virako/4028866 to your computer and use it in GitHub Desktop.
Rocamgo-ng
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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