Via use of GetLocalPlayer() native which takes nothing and returns player.
The player returned is that of who ever's PC runs it. This means that all human players get a unique value for it while computers are never able to be returned via it.
Basically you check if that native returns a player equal to the specific player you want to only be able to see it. If so you then reveal the board, otherwise you hide it.
Works with all graphic effects. Be warned that anything that causes net traffic to run with it will cause a split (out of sync error). What is displayed does not have to have logical results. Eg you can use it to display a dialog locally to all players without any problem, even though in practice this means that some players will appear to never be shown the dialog yet pick options (WC3 allows you to pick dialog options even without ever seeing the dialog).
GetLocalPlayer allows much more, have fun trying it out but like mentioned avoid net traffic as it will cause a split.