\newcommand{\checkcolor}[1]{
    \IfStrEq{#1}{black}{
        \def\fillcolor{white} 
    }{
        \def\fillcolor{black} 
    }
}

\newcommand{\cblacksquare}[2][0.3]{
\begin{tikzpicture}[scale=#1]
    \filldraw[fill=#2, draw=black] (0,0) -- (1,0) -- (1,1) -- (0,1) -- (0,0);
\end{tikzpicture}
}

\newcommand{\cwhitesquare}[2][0.3]{
\begin{tikzpicture}[scale=#1]
 \draw[#2] (0,0) -- (1,0) -- (1,1) -- (0,1) -- (0,0);
\end{tikzpicture}
}

\newcommand{\cblacksquaredot}[2][0.3]{
\begin{tikzpicture}[scale=#1]
\checkcolor{#2}
 \filldraw[fill=#2, draw=black] (0,0) -- (1,0) -- (1,1) -- (0,1) -- (0,0);
 \fill[\fillcolor] (0.5,0.5) circle (4pt);
\end{tikzpicture}
}

\newcommand{\cwhitesquaredot}[2][0.3]{
\begin{tikzpicture}[scale=#1]
 \draw[#2] (0,0) rectangle (1,1);
 \filldraw[#2] (0.5,0.5) circle (4pt);
\end{tikzpicture}
}

\newcommand{\cblacktriangleup}[2][0.3]{
\begin{tikzpicture}[scale=#1]
    % Draw the upward-pointing triangle
    \filldraw[fill=#2, draw=black] (0,0) -- (1,0) -- (0.5, 1) -- cycle;
\end{tikzpicture}
}

\newcommand{\cwhitetriangleup}[2][0.3]{
\begin{tikzpicture}[scale=#1]
    % Draw the upward-pointing triangle
    \draw[#2] (0,0) -- (1,0) -- (0.5, 1) -- cycle;
\end{tikzpicture}
}

\newcommand{\cblacktriangleleft}[2][0.3]{
\begin{tikzpicture}[scale=#1, rotate=90]
    % Draw the upward-pointing triangle
    \filldraw[fill=#2, draw=black] (0,0) -- (1,0) -- (0.5, 1) -- cycle;
\end{tikzpicture}
}

\newcommand{\cwhitetriangleleft}[2][0.3]{
\begin{tikzpicture}[scale=#1, rotate=90]
    % Draw the upward-pointing triangle
    \draw[#2] (0,0) -- (1,0) -- (0.5, 1) -- cycle;
\end{tikzpicture}
}

\newcommand{\cblacktriangleright}[2][0.3]{
\begin{tikzpicture}[scale=#1, rotate=-90]
    % Draw the upward-pointing triangle
    \filldraw[fill=#2, draw=black] (0,0) -- (1,0) -- (0.5, 1) -- cycle;
\end{tikzpicture}
}

\newcommand{\cwhitetriangleright}[2][0.3]{
\begin{tikzpicture}[scale=#1, rotate=-90]
    % Draw the upward-pointing triangle
    \draw[#2] (0,0) -- (1,0) -- (0.5, 1) -- cycle;
\end{tikzpicture}
}

\newcommand{\cblacktriangledown}[2][0.3]{
\begin{tikzpicture}[scale=#1, rotate=180]
    % Draw the upward-pointing triangle
    \filldraw[fill=#2, draw=black] (0,0) -- (1,0) -- (0.5, 1) -- cycle;
\end{tikzpicture}
}

\newcommand{\cwhitetriangledown}[2][0.3]{
\begin{tikzpicture}[scale=#1, rotate=180]
    % Draw the upward-pointing triangle
    \draw[#2] (0,0) -- (1,0) -- (0.5, 1) -- cycle;
\end{tikzpicture}
}

\newcommand{\cwhitesquarex}[2][0.3]{
\begin{tikzpicture}[scale=#1]
 \draw[#2] (0,0) -- (1,0) -- (1,1) -- (0,1) -- (0,0);
 \draw[#2] (1,0) -- (0,1);
 \draw[#2] (0,0) -- (1,1);
\end{tikzpicture}
}

\newcommand{\cblacksquarex}[2][0.3]{
\begin{tikzpicture}[scale=#1]
\checkcolor{#2}
 \filldraw[fill=#2, draw=black] (0,0) -- (1,0) -- (1,1) -- (0,1) -- (0,0);
 \draw[\fillcolor, line width=0.4mm] (1,0) -- (0,1);
 \draw[\fillcolor, line width=0.4mm] (0,0) -- (1,1);
\end{tikzpicture}
}

\newcommand{\cwhitesquarecross}[2][0.3]{
\begin{tikzpicture}[scale=#1]
 \draw[#2] (0,0) -- (1,0) -- (1,1) -- (0,1) -- (0,0);
 \draw[#2] (1,0.5) -- (0,0.5);
 \draw[#2] (0.5,0) -- (0.5,1);
\end{tikzpicture}
}

\newcommand{\cblacksquarecross}[2][0.3]{
\begin{tikzpicture}[scale=#1]
\checkcolor{#2}
 \filldraw[fill=#2, draw=black] (0,0) -- (1,0) -- (1,1) -- (0,1) -- (0,0);
 \draw[\fillcolor, line width=0.4mm] (1,0.5) -- (0,0.5);
 \draw[\fillcolor, line width=0.4mm] (0.5,0) -- (0.5,1);
\end{tikzpicture}
}

\newcommand{\cwhitediamondcross}[2][0.3]{
\begin{tikzpicture}[scale=#1]
 \draw[#2] (0,0.5) -- (0.5, 1) -- (1, 0.5) -- (0.5, 0) -- (0,0.5);
 \draw[#2] (1,0.5) -- (0,0.5);
 \draw[#2] (0.5,0) -- (0.5,1);
\end{tikzpicture}
}

\newcommand{\cblackdiamondcross}[2][0.3]{
\begin{tikzpicture}[scale=#1]
\checkcolor{#2}
 \filldraw[fill=#2, draw=black] (0,0.5) -- (0.5, 1) -- (1, 0.5) -- (0.5, 0) -- (0,0.5);
 \draw[\fillcolor, line width=0.4mm] (1,0.5) -- (0,0.5);
 \draw[\fillcolor, line width=0.4mm] (0.5,0) -- (0.5,1);
\end{tikzpicture}
}

\newcommand{\cwhitediamondx}[2][0.3]{
\begin{tikzpicture}[scale=#1]
 \draw[#2] (0,0.5) -- (0.5, 1) -- (1, 0.5) -- (0.5, 0) -- (0,0.5);
 \draw[#2] (0.25,0.75) -- (0.75,0.25);
 \draw[#2] (0.25,0.25) -- (0.75,0.75);
\end{tikzpicture}
}

\newcommand{\cblackdiamondx}[2][0.3]{
\begin{tikzpicture}[scale=#1]
\checkcolor{#2}
 \filldraw[fill=#2, draw=black] (0,0.5) -- (0.5, 1) -- (1, 0.5) -- (0.5, 0) -- (0,0.5);
 \draw[\fillcolor, line width=0.4mm] (0.25,0.75) -- (0.75,0.25);
 \draw[\fillcolor, line width=0.4mm] (0.25,0.25) -- (0.75,0.75);
\end{tikzpicture}
}

\newcommand{\cblackcircledot}[2][0.3]{
\begin{tikzpicture}[scale=#1]
\checkcolor{#2}
 \filldraw[fill=#2] (0.5,0.5) circle (14pt);
 \filldraw[\fillcolor] (0.5, 0.5) circle (4pt);
\end{tikzpicture}
}

\newcommand{\cwhitecircledot}[2][0.3]{
\begin{tikzpicture}[scale=#1]s
 \draw[#2] (0.5,0.5) circle (14pt);
 \filldraw[#2] (0.5, 0.5) circle (4pt);
\end{tikzpicture}
}

\newcommand{\cblackcircle}[2][0.3]{
\begin{tikzpicture}[scale=#1]
 \filldraw[fill=#2] (0.5,0.5) circle (14pt);
\end{tikzpicture}
}

\newcommand{\cwhitecircle}[2][0.3]{
\begin{tikzpicture}[scale=#1]
 \draw[#2] (0.5,0.5) circle (14pt);
\end{tikzpicture}
}

\newcommand{\cblackstartriangleup}[2][0.3]{
\begin{tikzpicture}[scale=#1]
    % Draw the upward-pointing triangle
    \filldraw[fill=#2] (0,0) to[out=20, in=160] (1,0) to[out=160, in=90] (0.5, 0.9) to[out=90, in=20] cycle;
\end{tikzpicture}
}

\newcommand{\cwhitestartriangleup}[2][0.3]{
\begin{tikzpicture}[scale=#1]
    % Draw the upward-pointing triangle
    \draw[#2] (0,0) to[out=20, in=160] (1,0) to[out=160, in=90] (0.5, 0.9) to[out=90, in=20] cycle;
\end{tikzpicture}
}

\newcommand{\cblackstartriangleupdot}[2][0.3]{
\begin{tikzpicture}[scale=#1]
\checkcolor{#2}
    % Draw the upward-pointing triangle
    \filldraw[fill=#2] (0,0) to[out=20, in=160] (1,0) to[out=160, in=90] (0.5, 0.9) to[out=90, in=20] cycle;
    \filldraw[\fillcolor] (0.5,0.4) circle (3pt);
\end{tikzpicture}
}

\newcommand{\cwhitestartriangleupdot}[2][0.3]{
\begin{tikzpicture}[scale=#1]
    % Draw the upward-pointing triangle
    \draw[#2] (0,0) to[out=20, in=160] (1,0) to[out=160, in=90] (0.5, 0.9) to[out=90, in=20] cycle;
    \filldraw[#2] (0.5,0.4) circle (3pt);
\end{tikzpicture}
}

\newcommand{\cwhitestartriangledown}[2][0.3]{
\begin{tikzpicture}[scale=#1]
    % Draw the upward-pointing triangle
    \draw[#2] (0,1) to[out=-20, in=-160] (1,1) to[out=-160, in=65] (0.5, 0) to[out=115, in=-20] cycle;
\end{tikzpicture}
}

\newcommand{\cblackstartriangledown}[2][0.3]{
\begin{tikzpicture}[scale=#1]
    % Draw the upward-pointing triangle
    \filldraw[fill=#2] (0,1) to[out=-20, in=-160] (1,1) to[out=-160, in=65] (0.5, 0) to[out=115, in=-20] cycle;
\end{tikzpicture}
}

\newcommand{\cwhitestartriangledowndot}[2][0.3]{
\begin{tikzpicture}[scale=#1]
    % Draw the upward-pointing triangle
    \draw[#2] (0,1) to[out=-20, in=-160] (1,1) to[out=-160, in=65] (0.5, 0) to[out=115, in=-20] cycle;
    \fill[fill=#2] (0.5,0.6) circle (3pt);
\end{tikzpicture}
}

\newcommand{\cblackstartriangledowndot}[2][0.3]{
\begin{tikzpicture}[scale=#1]
\checkcolor{#2}
    % Draw the upward-pointing triangle
    \filldraw[fill=#2] (0,1) to[out=-20, in=-160] (1,1) to[out=-160, in=65] (0.5, 0) to[out=115, in=-20] cycle;
    \filldraw[\fillcolor] (0.5,0.6) circle (3pt);
\end{tikzpicture}
}

\newcommand{\cblackstar}[2][0.7]{
\begin{tikzpicture}
    % Draw the upward-pointing triangle
    \node[star, star points=5, star point ratio=2.25, fill=#2, draw=black, scale=#1] at (0,0) {};
\end{tikzpicture}
}

\newcommand{\cwhitestar}[2][0.7]{
\begin{tikzpicture}
    % Draw the upward-pointing triangle
    \node[star, star points=5, star point ratio=2.25, draw=#2, scale=#1] at (0,0) {};
\end{tikzpicture}
}