https://github.com/alezost/ducpel.git
git clone 'git://github.com/alezost/ducpel.git'
Logic game with sokoban elements for GNU Emacs.

Clone the repo and add the following lines to your .emacs.
(add-to-list 'load-path "/path/to/ducpel-dir")
(autoload 'ducpel "ducpel" nil t)
The package can be installed from MELPA or using quelpa like this:
(quelpa '(ducpel :fetcher github :repo "alezost/ducpel" :files ("*.el" "levels")))
Use M-x ducpel to start the game and the following keys to play:
Key bindings for levels:
Key bindings for replaying:
You will learn everything you need during playing the game.
TODO Write something here.
If you found a better solution than the default one, and especially if you created a level, you may make a pull request or open an issue.
Making new levels is a priority. artist-mode can be useful during
building a map. A level file consists of 2 maps:
The main map (titled with ; Map) defines:
@ – impassable cells (unbreakable walls);
# – breakable walls;
` ` – empty cells;
. – simple floor,E – exit,T – teleport,L – floor that can move left,R – floor that can move right,U – floor that can move up,D – floor that can move down,H – floor that can move horizontally (left and right),V – floor that can move vertically (up and down),M – floor that can move in any direction.The second map (titled with Objects) is used only to define the
position of men and boxes:
p – inactive man;
P – active man;
boxes: b, e, t, l, r, u, d, h, v, m (the same
meaning as for the floors above).
Other characters in the object map are ignored.
Also a level should provide a solution (ducpel-moves-history variable
contains the moves and it is the solution after you passed a level).
I thought it would be great to make a sokoban-like game where several men can move several boxes and boxes can be transformed into floors, so that you can build a path to the exit.
A big part of the game is the idea of moving cells (floors with arrows). It was taken from a non-free game “Metamorphs” (it was released only for Microsoft Windows around 2000).
The code of sokoban package was used hardly.
I just tried to make a unique name and stayed on this variant because it ends with “el” and it consists (almost) of 2 latin roots: