Here is my approach, not even as elegant as other answers, but using TiKZ Matrix.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{gillius2} % Stolen from Bernard answer
\renewcommand\familydefault{\sfdefault}
\usepackage[dvipsnames]{xcolor} %always declare the xcolor package before tikz
\usepackage{tikz}
\usetikzlibrary{matrix,positioning}
\begin{document}
\bfseries
\begin{tikzpicture}
\tikzset{square matrix/.style={
matrix of nodes,
column sep=-\pgflinewidth, row sep=-\pgflinewidth,
nodes={draw=none,
minimum height=12pt,
anchor=center,
text width=#1,
},
},
square matrix/.default=1.2cm
}
\matrix (first) [square matrix,
column 1/.style={nodes={fill=BrickRed,draw=none}},
column 2/.style={nodes={align=center}},
column 3/.style={nodes={align=center}},
column 4/.style={nodes={align=center}},
row 1/.style={nodes={draw=none,fill=white}},
row 2/.style={nodes={draw=none,fill=white}},
row 3/.style={nodes={fill=LimeGreen,draw=none}},
]
{
{} & {} & {} & {} \\
{} & {} & {} & {} \\
|[draw=none,fill=white,align=center]| 1 & 2 & 3 & 4 \\
9 & 10 & 11 & 12 \\
17 & 18 & 19 & 20 \\
25 & 26 & 27 & 28 \\
};
\matrix (second) [right=of first,square matrix,
column 1/.style={nodes={fill=BrickRed,draw=none}},
column 2/.style={nodes={align=center}},
column 3/.style={nodes={align=center}},
column 4/.style={nodes={align=center}},
row 1/.style={nodes={draw=none,fill=white}},
row 2/.style={nodes={draw=none,fill=white}},
row 3/.style={nodes={fill=LimeGreen,draw=none}},
]
{
{} & {} & {} & {} \\
{} & {} & {} & {} \\
|[draw=none,fill=white,align=center]| 5 & 6 & 7 & 8 \\
13 & 14 & 15 & 16 \\
21 & 22 & 23 & 24 \\
29 & 30 & 31 & 32 \\
};
\draw[blue] (first-4-2.south west) -- (first-4-4.south east);
\draw[blue] (first-5-2.south west) -- (first-5-4.south east);
\draw[blue] (second-4-2.south west) -- (second-4-4.south east);
\draw[blue] (second-5-2.south west) -- (second-5-4.south east);
%
\draw[YellowOrange, ultra thick] (second-4-2.north west) -- (second-6-2.south west) -- (second-6-1.south west) -- (second-6-1.south west) -- (second-3-1.south west) -- (second-3-2.south west) ;
\draw[YellowOrange, ultra thick] (second-4-2.north west) -- (second-3-2.north west) -- (second-3-4.north east) -- (second-4-4.north east) -- (second-3-2.south west) ;
\draw[YellowOrange, ultra thick] (second-6-2.south west) -- (second-6-4.south west);
%
\draw[YellowOrange, ultra thick] (first-4-2.north west) -- (first-6-2.south west) -- (first-6-1.south west) -- (first-6-1.south west) -- (first-3-1.south west) -- (first-3-2.south west) ;
\draw[YellowOrange, ultra thick] (first-4-2.north west) -- (first-3-2.north west) -- (first-3-4.north east) -- (first-4-4.north east) -- (first-3-2.south west) ;
\draw[YellowOrange, ultra thick] (first-6-2.south west) -- (first-6-4.south west);
%
\draw[Violet,ultra thick] (first-6-4.south east) -- (first-6-4.south west) -- (first-1-4.north west) -- (second-1-4.north east) -- (second-6-4.south east) -- (second-6-4.south west) -- (second-1-4.south west) -- (first-1-4.south east) -- (first-6-4.south east) -- (first-6-4.south west);
\end{tikzpicture}
\end{document}
My code was partially adapted from the following question/answers : Color of square cell in array, TikZ matrix as a replacement for tabular, Big block matrix with tikz.
documentenvironment? That makes it easier for people to help as they don't have to start by completing your code and guessing which packages etc. it needs. – cfr Jun 19 '16 at 12:27linstead ofcto align cells left. Remove the first\hlineto avoid the line being drawn above the top left cell. – cfr Jun 19 '16 at 12:31