I want to make a macro "mymacro" that returns an array with two rows.
The macro has two variables and each variable is a string word composed with "b","o", "x", "|". These strings represent "blank", "\bigcirc", "\bigotimes", "vertical line partitioning one row".
The number of columns is arbitrary and equals to the number of "b,o,x" in one of the two variables and each variable has the same number of columns. Note that "|" does not affect the number of the columns.

For example,

```
\mymacro{|bo|x|}{o|x|b}

```

should returns

[![enter image description here](https://i.stack.imgur.com/sSg7E.png)](https://i.stack.imgur.com/sSg7E.png)
and this code is following.

```
\documentclass[amsmath]{article}
%for vertical line
\def\vl{\hfil\kern\arraycolsep\vline\kern-\arraycolsep\hfilneg}

\begin{document}
$
\begin{array}{cccc}
   \vl&            & \bigcirc \vl   & \bigotimes \vl  \\\cline{2-4}
      &\bigcirc \vl& \bigotimes \vl & 
\end{array}
$
\end{document}

```

This example is three columns case. I refereed to [this question](https://tex.stackexchange.com/questions/31441/vertical-line-only-in-one-part-of-a-table) for the vertical line.

I tried to apply the answers of [similar question](https://tex.stackexchange.com/questions/630748/how-to-make-macro-with-string-variable-and-returning-array), but I was not familar with Tex macro programing and could not solve the above problem.

Thank you for your cooperations.