Here is the code for a diagram that I have just generated:
\begin{tikzpicture}[fill=black]
\matrix[matrix of nodes, nodes={draw,minimum size=1cm}, nodes in empty cells,column sep=-\pgflinewidth,row sep=-\pgflinewidth](M){
& & |[fill]| & & & |[fill]| & & & |[fill]| \\
& |[fill]| & & & |[fill]| & & & |[fill]| & \\
|[fill]| & & & |[fill]| & & & |[fill]| & & \\
& & |[fill]| & & & |[fill]| & & & |[fill]| \\
& |[fill]| & & & |[fill]| & & & |[fill]| & \\
|[fill]| & & & |[fill]| & & & |[fill]| & & \\
& & |[fill]| & & & |[fill]| & & & |[fill]| \\
& |[fill]| & & & |[fill]| & & & |[fill]| & \\
|[fill]| & & & |[fill]| & & & |[fill]| & & \\
};
\end{tikzpicture}
Basically this code helps me populate my 9 by 9 board with white and black squares. Now, decomposing this board into 9 3 by 3 squares, I wonder if there is a way to create distinctive thick borders around the boundaries of each 3 by 3 square in the block? That is, I want the boundaries of each 3 by 3 square to be a more solid shade of black compared to the other lines. (This is because I am trying to prove a result and doing the above would help me illustrate my point better).
Edit: Hmm so based on the responses that I have obtained, there are apparently a few ways to do this: one is to create a matrix list and then to individually specify whether you want each cell to be black or white. Indeed, this method is much more intuitive, and relatively feasible to carry out as long as your board is not too large. The second method involves a neat application of modular arithmetic, and though it takes a little bit of time to understand, its main merit is that you can easily populate the entire board with colours, which is advantageous when you have a larger board. At least, this is what I have managed to gather.

