If you manage the board yourself (using an array for instance), you can always check in movement code if the next cell is forbidden or not, and allow the character to move or not, with sound/visual effect.
It's just depend how big is the world and how it is modelled (using noise or hand made), if size if not too big, array or even dictionary for scattered map with only a few tile with special behaviour (wall, resource, trap, ...), could be better/faster.