JSoko
-----

Sokoban(r) Registered Trademark of Falcon Co., Ltd., Japan
Sokoban Copyright (c) 1982-2004 by Hiroyuki Imabayashi, Japan
Sokoban Copyright (c) 1989, 1990, 2001-2006 by Falcon Co., Ltd., Japan

Installing the program
----------------------

- The program is written in Java. You must have Java installed to start the game.
  You can download the latest Java version at www.sun.com
- Create a folder named JSoko in the folder C:\Programs or in another folder if you prefer.
- Download the file "JSoko_1.61.zip" (or the latest version).
- Decompress it and copy the files it contains in the folder "JSoko".
- Create a shortcut for the file "Start_JSoko_Windows.bat" (Windows users) on the desktop.
  Double clicking on the icon should start the program.
  You can also double click the file "JSoko.jar".
- If the program doesn't start please check if you have Java installed. If you
  have questions about how to start the program write to "JSoko@online.de"

Uninstalling the program
------------------------

Delete the folder "JSoko" and the shortcut on the desktop.

The game
--------

"Sokoban" is a puzzle game invented in Japan in 1982 by Hiroyuki Imabayashi.
The rules are very simple but the game itself is not :-)

The Rules
---------

The object of the game is to push boxes to specially marked positions in a level.
The boxes can only be pushed, never pulled, and only one box can be pushed at a time.
The player can only move on "free" fields (= no wall and no box).
A level is solved if all boxes have been pushed to specially marked positions. 
Each field can be occupied by only one of the following level elements at a time:
the player, a box, a wall.

Just start the game. You easily will learn the rules by playing the game :-)

The computer will help you in situations where you lost the possibility
to solve the level (for example, if you pushed a box into a corner)
by showing you the message that the level isn't solvable anymore.
Note: Recognizing situations that are unsolvable can be very difficult.
Hence, JSoko shows this message only for some kinds of unsolvable situations
it can recognize.


How to Play
-----------

You can move the player by using the arrow keys or by using the mouse (or both :-)


Keyboard Functions
------------------

Move the player:        Arrow keys
Undo last move:         [Delete] or [Backspace]
Redo move from history: [Insert]
Previous level:         [Page up]
Next level:             [Page down]


Mouse Functions
---------------

Left-click on a position to let the player automatically move to this position.
Left-click on a box to select it, then left-click on the target position of the
box. The player will automatically push the selected box to the specified
position. Unselect a box by clicking on it again.

A click of the right mouse button will undo the last done activity.
 

License
-------

JSoko
Copyright (c) 2005-2011 by Matthias Meger, Germany

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

To view the license online, go to: http://www.gnu.org/copyleft/gpl.html


This program uses the NimROD look&feel written by Nilo J. González:
http://personales.ya.com/nimrod/index-en.html
It is given to you under the GNU General Public License.

hsqldb.jar: HSQLDB is the leading SQL relational database engine written
in Java.  See: http://hsqldb.org/
You can find the license of HSQLDB in the textfile: "License of HSQLDB.txt"

JIDE Common Layer Open Source Project: see http://jide-oss.dev.java.net/

All used icons are created by http://tango-project.org/Tango_Desktop_Project
(licensed under the Creative Commons Attribution Share-Alike license,
 see: http://creativecommons.org/licenses/by-sa/2.5/deed.en)
or
http://www.oxygen-icons.org
(licensed under the GNU Library General Public License).

Graphic "drops.jpeg": Author: paninaro, Licence: Artistic 2.0
(http://dev.perl.org/perl6/rfc/346.html)

Apache HttpComponents Client is licensed under the Apache License 2.0.


Credits
--------

Sokoban skins:
Gerry Wiseman.
E-mail: gerrw@shaw.ca

Björn Källmark
www.sourcecode.se/sokoban


Built-in level collection "GRIGoRusha":
Copyright (c) by Evgeny Grigoriev.
E-mail: grigr@yandex.ru
Original level website: http://grigr.narod.ru

Built-in level collections "SokEvo" and "SokHard":
Copyright (c) by Lee J Haywood.
E-mail: fruise@gmail.com
Original level website: http://www.discussionator.com/sokoban.html

Built-in level collection "YASGen":
Copyright (c) by Brian Damgaard.
E-mail: Brian.Damgaard@e-mail.dk
Original level website: https://sourceforge.net/projects/sokobanyasc/

Built-in level collection from Dries De Clercq:
Copyright (C) by Dries De Clercq
E-mail: de3s@hotmail.com
Original level website: http://www.freewebs.com/dries/soko.htm

Built-in level collection from Jean-Pierre Martel & Matthias Meger
Copyright (C) by Jean-Pierre Martel & Matthias Meger
E-mail: sokomonk@laposte.net

Built-in level collection from David Holland
Copyright (C) by David Holland
E-mail: dholland@dholland.karoo.co.uk



Acknowledgments
----------------

I would like to thank all who have contributed to the program.
Special thanks go to:

. Fred Minklei, for so many good ideas and suggestions about game features

. Brian Damgaard for his program YASC and all his help developing my program

. Sébastien Gouëzel for sharing his ideas and insights on the optimizer.

. Heiner Marxen for helping me improving the program


Contact
-------

Comments, suggestions, and bug-reports are welcome!
Just write to JSoko@online.de


Matthias Meger
