private char scanCells(Direction direction) {
		final boolean isHorizontal = direction == Direction.Horizontal;

		for (int i = 0; i < _board.length; ++i) {
			final char startToken = _board[isHorizontal ? i : 0][isHorizontal ? 0
					: i];
			boolean foundWinner = true;

			for (int j = 1; j < _board.length; ++j) {
				if (_board[isHorizontal ? i : j][isHorizontal ? j : i] != startToken) {
					foundWinner = false;
					break;
				}
			}

			if (foundWinner) {
				return startToken;
			}
		}

		return NO_WINNER_CHAR;
	}