I am just expanding @Jake's comments into an answer.
\documentclass[border=.1cm]{standalone} %change to article or whatever...
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\fill [green!80!blue] (3.5,0) -- (3,0) -- (3,1) -- (2,1) -- (2,2) -- (1,2) -- (1,3.5) -- (3.5,3.5) -- cycle;
\draw[thin] (0,0) grid (4.5,4.5);
\draw[brown,ultra thick] (0,0) circle (0.3cm);
\draw [rounded corners=0.2cm,brown,very thick] (1.2,-0.4) -- (1.2,1.3) -- (0.8,1.3) -- (0.8,-0.4) -- cycle;
\draw[brown,ultra thick] (2,0) circle (0.3cm);
\draw [rounded corners=0.2cm,brown,very thick] (0.2,4.3) -- (0.2,0.8) -- (-0.2,0.8) -- (-0.2,4.3);
\foreach \x in {0,1,2,3,4}
\foreach \y in {,0,1,2,3,4}
{
\draw[fill=black] (\x,\y) circle (1pt);
}
% \fill [green!80!blue,opacity=.4] (3.5,0) -- (3,0) -- (3,1) -- (2,1) -- (2,2) -- (1,2) -- (1,3.5) -- (3.5,3.5) -- cycle;
\draw [rounded corners=0.2cm,brown,very thick] (4.3,-0.3) -- (2.8,-0.3) -- (2.8,0.8) -- (1.8,0.8) -- (1.8,1.8) -- (0.8,1.8) -- (0.8,4.3);
\end{tikzpicture}
\end{document}

Instead of putting
\fill [green!80!blue] (3.5,0) -- (3,0) -- (3,1) -- (2,1) -- (2,2) -- (1,2) -- (1,3.5) -- (3.5,3.5) -- cycle;
in the beginning you can put it anywhere and use opacity = .4
( or any value as you like) as:
\fill [green!80!blue,opacity=.4] (3.5,0) -- (3,0) -- (3,1) -- (2,1) -- (2,2) -- (1,2) -- (1,3.5) -- (3.5,3.5) -- cycle;
to get

Pl. note that I have used a very conventional and simple way of putting coordinates. Things can be made more complex and neat.
\draw (0,0) grid (3.5,3.5);
, for example. For drawing the "bags", you can use\draw [rounded corners=0.2cm] (<coordinate>) -- (<coordinate>) -- <and so on>;
.