Below is a simple "Sokoban" game implemented in JavaScript.

The player is represented by the cyan square, and the gray squares represent walls. The player can be moved around with the W, A, S, and D keys. The goal of the game is to push the sliders (brown squares) onto the targets (green squares). The sliders can only be pushed, not pulled, and they can only move if there's not a wall or another slider in the way. If a slider gets pushed against the outside wall, it's stuck there, since the player can't get behind it to push it off. For more information about Sokoban, see its Wikipedia article.

To see the source code, or to make a comment, visit