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: