I wish to draw nodes line exactly below previous line, but below example looks weird.
\documentclass[convert={outfile=\jobname.png}]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,chains,positioning,scopes,quotes,patterns}
\begin{document}
\begin{tikzpicture}[
>=stealth',
node distance=0 and 0,
block/.style={draw,on chain,minimum size=1.4em},
]
{[start chain=C1]
%Y
\node[block] (N0) {Y};
\foreach \i in {1,...,39} {
\pgfmathparse{Mod(\i,10)==0?1:0}
\ifnum\pgfmathresult>0
\pgfmathsetlengthmacro\j{\i-10}
\node[block,below=of N\j] (N\i) {Y};
\else
\pgfmathparse{Mod(\i,10)>7?1:0}
\ifnum\pgfmathresult>0
\node[block,pattern=north west lines] (N\i) { };
\else
\node[block] (N\i) {Y};
\fi
\fi
}
% U
\node[block,below=of N31] (N41) {U};
\foreach \i in {42,...,50} {
\ifnum\i>48
\node[block,pattern=north west lines] (N\i) { };
\else
\pgfmathparse{Mod(\i,2)==0?1:0}
\ifnum\pgfmathresult>0
\node[block] (N\i) {};
\else
\node[block] (N\i) {U};
\fi
\fi
}
\node[block,below=of N41] (N51) {U};
\foreach \i in {52,...,60} {
\ifnum\i>58
\node[block,pattern=north west lines] (N\i) { };
\else
\pgfmathparse{Mod(\i,2)==0?1:0}
\ifnum\pgfmathresult>0
\node[block] (N\i) {};
\else
\node[block] (N\i) {U};
\fi
\fi
}
%V
\node[block,below=of N51] (N61) {U};
\foreach \i in {62,...,70} {
\ifnum\i>68
\node[block,pattern=north west lines] (N\i) { };
\else
\pgfmathparse{Mod(\i,2)==0?1:0}
\ifnum\pgfmathresult>0
\node[block] (N\i) {};
\else
\node[block] (N\i) {V};
\fi
\fi
}
\node[block,below=of N61] (N71) {U};
\foreach \i in {72,...,80} {
\ifnum\i>78
\node[block,pattern=north west lines] (N\i) { };
\else
\pgfmathparse{Mod(\i,2)==0?1:0}
\ifnum\pgfmathresult>0
\node[block] (N\i) {};
\else
\node[block] (N\i) {V};
\fi
\fi
}
}
\end{tikzpicture}
\end{document}
The U,V lines looks good but the Y lines not as expected.