diff --git a/go.py b/go.py --- a/go.py +++ b/go.py @@ -1,33 +1,33 @@ class Go: - # 1: B, 0: _, -1: W - # resp. jakákoli čísla s opačnými znaménky - board=[[0]*19 for i in range(19)] - - def __init__(self): self.board=[[0]*19 for i in range(19)] - - def move(self,color,y,x): - if self.board[x][y]!=0: return False + # 1: B, 0: _, -1: W + # resp. jakákoli čísla s opačnými znaménky + board=[[0]*19 for i in range(19)] + + def __init__(self): self.board=[[0]*19 for i in range(19)] + + def move(self,color,y,x): + if self.board[x][y]!=0: return False - self.board[x][y]=color + self.board[x][y]=color - for i,j in ((-1,0),(1,0),(0,-1),(0,1)): - self.temp=[[False]*19 for i in range(19)] - if not self._floodFill(-color,x+i,y+j): self._remove() - self.temp=[[False]*19 for i in range(19)] - if not self._floodFill(color,x,y): - self.board[x][y]=0 - return False - return True + for i,j in ((-1,0),(1,0),(0,-1),(0,1)): + self.temp=[[False]*19 for i in range(19)] + if not self._floodFill(-color,x+i,y+j): self._remove() + self.temp=[[False]*19 for i in range(19)] + if not self._floodFill(color,x,y): + self.board[x][y]=0 + return False + return True - def _floodFill(self,color,x,y): - if x<0 or x>18 or y<0 or y>18: return False - if self.temp[x][y]: return False - if self.board[x][y]==0: return True - if self.board[x][y]!=color: return False - self.temp[x][y]=True - return self._floodFill(color,x-1,y) or self._floodFill(color,x+1,y) or self._floodFill(color,x,y-1) or self._floodFill(color,x,y+1) - - def _remove(self): - for i in range(19): - for j in range(19): - if self.temp[i][j]: self.board[i][j]=0 + def _floodFill(self,color,x,y): + if x<0 or x>18 or y<0 or y>18: return False + if self.temp[x][y]: return False + if self.board[x][y]==0: return True + if self.board[x][y]!=color: return False + self.temp[x][y]=True + return self._floodFill(color,x-1,y) or self._floodFill(color,x+1,y) or self._floodFill(color,x,y-1) or self._floodFill(color,x,y+1) + + def _remove(self): + for i in range(19): + for j in range(19): + if self.temp[i][j]: self.board[i][j]=0