Sepp is alpha software. YHBW.

Screenshot of Sepp gameplay

Description — What Is Sepp?

Sepp, the Sliding Evil-Piece Puzzle, implements a computer version of the classic sliding puzzle game, which has 15 sliding tiles in a 4-by-4 matrix and is also known as the 15 puzzle, in which the properly ordered tiles would form a picture. Variants like Loyd's would be unsuitable for this version of the game because a picture in which two contiguous tiles were swapped (and which, therefore, could not be recomposed) might annoy users and likely be perceived as a bug in the program; therefore, Sepp does not perform arbitrary tile swapping when scrambling the tiles, and the original image can always be obtained given enough tile pushes.

On the other hand, Sepp implements its own innovative kind of player aggravation: based on a user-configurable degree of evil, ranging from Not at all evil to beyond Very Evil, Sepp decides, during each animation frame, whether it will disturb a tile while the game is in progress. For better or worse, this feature, which can be disabled by setting the evilness to Not at all evil, sets Sepp apart from other, similar games.

Rationale — Why Was Sepp Written?

This project was originally developed between December 9 and December 21, 2005, as the “personal project” for a class called Programming Fundamentals 1 that the author took at the University of Lugano's Faculty of Informatics. The goal was to exercise and demonstrate programming skills acquired over the course of the previous seven weeks.

Features — What Can Sepp Do?

The alpha version of Sepp can already do quite a few things.

Just as importantly, Sepp does not implement a feature that may at first seem like an obvious requirement: Sepp does not keep track of the number of times the user pushed a tile. It seems hardly fair to do so in the face of the random gratuitous tile pushes the program performs during gameplay, some of which can really trip one up. Sepp does, however, keep track of tile pushes it makes, and uses this information to lower its evilness as the game wears on; that is, if the player wants to get cute and start solving a barely-scrambled game, Sepp is much more likely to push tiles during play ­ but, gradually, it relents, and the game becomes more playable.

Requirements — Will Sepp Work on My System?

Sepp is written for the DrScheme environment; therefore, Sepp should run just fine on any platform on which you can get DrScheme to run. :-) I developed it on a 1.3GHz AMD Duron with SDRAM, so your machine will most probably run it without problems.

Downloads — How Can I Get Sepp?

The latest-and-greatest version of Sepp [Tar/GZ|Tar/BZ2] dates from 24 March 2006 and is released under version 2 of the GNU General Public License. Sepp is free software.

Those who are interested in what one can accomplish after seven weeks of functional programming at InfUSI, starting from nil, can download the original version of the project from my USI portfolio.

Instructions — How Do I Play Sepp?

Here is a printer-friendly document explaining how to use Sepp. It's from December, but it is still accurate, as the interface has not changed. An online version is in the works.

Support — Where Can I Get Help with Sepp?

Believe it or not, any question or suggestion regarding Sepp is most welcome. Here are the focal points of Sepp support and development:

freshmeat.net
The Freshmeat project details page allows you to post comments and questions, as well as rate the project. If you subscribe to the project, Freshmeat will notify you of new releases and I will be able to send you mail to warn you of any show-stopping bugs or to ask for your opinion when implementing new features. If you prefer not to subscribe, you can keep up with Sepp development by watching the NEWS file.
advogato.org
If you get involved in Sepp development, you'll be able to confess your sins here. To become a contributor, you should write to me, directly; you will find the email address in the README file.

When you unpack the compressed archive, the resulting directory is named after the corresponding the CVS release tag, which is derived from the release date. This tag is also found in the footer of standard distribution files and in the header of program source code files. Please, refer to this tag in your messages.

Acknowledgments — Last, but Not Least

This project would not have been what it is and was without the involvement of fellow conspirator Marco D'Ambros, whose no-nonsense technical advice, high expectations, and well-timed moral support made Sepp better. I also wish to thank Professor Michele Lanza for believing in his students and giving us projects worth sinking our teeth into.

. .