\subsection{Sokoban}
\screenshot{plugins/images/ss-sokoban}{Sokoban}{fig:sokoban}

The object of the game is to push boxes into their correct position in a
crowded warehouse with a minimal number of pushes and moves. The boxes
can only be pushed, never pulled, and only one can be pushed at a time.

\begin{table}
\begin{btnmap}{}{}
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD}
    {\ButtonUp, \ButtonDown,}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu, \ButtonPlay,}
\opt{IRIVER_H10_PAD}{\ButtonScrollUp, \ButtonScrollDown,}
    \ButtonLeft, \ButtonRight
    & Move the ``sokoban'' up, down, left or right\\
\opt{RECORDER_PAD}{\ButtonFOne}
\opt{ONDIO_PAD}{\ButtonMenu+\ButtonLeft}
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonRec}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonLeft}
\opt{IAUDIO_X5_PAD}{\ButtonPlay+\ButtonDown}
\opt{IRIVER_H10_PAD}{\ButtonPlay+\ButtonScrollDown}
    & Back to previous level \\
\opt{RECORDER_PAD}{\ButtonFTwo}
\opt{ONDIO_PAD}{\ButtonMenu+\ButtonRight}
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonSelect}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay}
\opt{IAUDIO_X5_PAD}{\ButtonRec}
\opt{IRIVER_H10_PAD}{\ButtonFF}
    & Restart level \\
\opt{RECORDER_PAD}{\ButtonFThree}
\opt{ONDIO_PAD}{\ButtonMenu+\ButtonUp}
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonMode}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonRight}
\opt{IAUDIO_X5_PAD}{\ButtonPlay+\ButtonUp}
\opt{IRIVER_H10_PAD}{\ButtonPlay+\ButtonScrollUp}
    & Go to next level \\
\opt{RECORDER_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOn}
\opt{ONDIO_PAD}{\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD,IAUDIO_X5_PAD}{\ButtonSelect}
\opt{IRIVER_H10_PAD}{\ButtonRew}
    & Undo last movement \\
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD}{\ButtonPower}
    & Exit sokoban \\
\end{btnmap}
\end{table}
