def is_legal(self, action):
		# passing move
		if action is PASS_MOVE:
			return True
		(x, y) = action
		empty = self.board[x][y] == EMPTY
		suicide = self.is_suicide(action)
		ko = action == self.ko
		return self._on_board(action) and (not suicide) and (not ko) and empty
determine if the given action (x,y tuple) is a legal move
dataset/ETHPy150Open Rochester-NRT/RocAlphaGo/AlphaGo/go.py/GameState.is_legal