Define the eight possible directions as pairs of row and column increments.
For each direction, check the adjacent cell to the move cell to ensure it is of the opposite color.
Continue moving in that direction, counting the number of opposite color cells until either a cell of the same color is found (indicating a potential 'good line') or a free cell or the edge of the board is reached.
If a cell of the same color is found and at least one opposite color cell was seen in between, the move is legal for that direction.
If a legal move is found in any direction, return true.
If no legal moves are found after checking all directions, return false.