solving
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 378
Solving Constraint Integer Programs 0.90
Solving Constraint Integer Programs is a framework for constraint integer programming. more>>
Solving Constraint Integer Programs is a framework for constraint integer programming. For solving Integer Programs and Constraint Programs, a very similar technique is used: the problem is successively divided into smaller subproblems (branching) that are solved recursively.
On the other hand, Integer Programming and Constraint Programming have different strengths: Integer Programming uses LP relaxations and cutting planes to provide strong dual bounds, while Constraint Programming can handle arbitrary (non-linear) constraints and uses propagation to tighten the variables domains.
SCIP is a framework for Constraint Integer Programming oriented towards the needs of Mathematical Programming experts who want to have total control of the solution process and access detailed information down to the guts of the solver. SCIP can also be used as pure MIP solver or as framework for branch-cut-and-price.
Main features:
- It is a framework for branching, cutting, pricing, and propagation.
- It is highly flexible through many possible user plugins:
- constraint handlers to implement arbitrary constraints,
- variable pricers to dynamically create problem variables,
- domain propagators to apply constraint independent propagations on the variables domains,
- cut separators to apply cutting planes on the LP relaxation,
- relaxators to provide relaxations and dual bounds in addition to the LP relaxation,
- primal heuristics to search for feasible solutions with specific support for probing and diving,
- node selectors to guide the search,
- branching rules to split the problem into subproblems,
- presolvers to simplify the solved problem,
- file readers to parse different input file formats,
- event handlers to be informed on specific events, e.g., when a node was solved, a specific variable changed its bounds, or a new primal solution was found,
- display handlers to create additional columns in the solvers output.
- dialog handlers to extend the included command shell.
- Every existing unit is implemented as a plugin, leading to an interface flexible enough to meet the needs of most additional user extensions.
- A dynamic cut pool management is included.
- The user may mix preprocessed and active problem variables in expressions: they are automatically transformed to corresponding active problem variables.
- Arbitrarily many children per node can be created, and the different children can be arbitrarily defined.
- It has an open LP solver support (currently supporting ILOG CPLEX, Dash XPress-MP, SoPlex, and CLP.
- The LP relaxation need not to be solved at every single node (it can even be turned off completely, mimicing a pure constraint solver).
- Additional relaxations (e.g., semidefinite relaxations or Lagrangian relaxations) can be included, working in parallel or interleaved.
- Conflict analysis can be applied to learn from infeasible subproblems.
- Dynamic memory management reduces the number of operation system calls with automatic memory leakage detection in debug mode.
Enhancements:
- The new heuristics "RENS", "mutation", "veclendiving", and "intshifting", were included.
- The existing ones were improved.
- Presolving and c-MIR cut generation were improved.
- A few bugs were fixed.
<<lessOn the other hand, Integer Programming and Constraint Programming have different strengths: Integer Programming uses LP relaxations and cutting planes to provide strong dual bounds, while Constraint Programming can handle arbitrary (non-linear) constraints and uses propagation to tighten the variables domains.
SCIP is a framework for Constraint Integer Programming oriented towards the needs of Mathematical Programming experts who want to have total control of the solution process and access detailed information down to the guts of the solver. SCIP can also be used as pure MIP solver or as framework for branch-cut-and-price.
Main features:
- It is a framework for branching, cutting, pricing, and propagation.
- It is highly flexible through many possible user plugins:
- constraint handlers to implement arbitrary constraints,
- variable pricers to dynamically create problem variables,
- domain propagators to apply constraint independent propagations on the variables domains,
- cut separators to apply cutting planes on the LP relaxation,
- relaxators to provide relaxations and dual bounds in addition to the LP relaxation,
- primal heuristics to search for feasible solutions with specific support for probing and diving,
- node selectors to guide the search,
- branching rules to split the problem into subproblems,
- presolvers to simplify the solved problem,
- file readers to parse different input file formats,
- event handlers to be informed on specific events, e.g., when a node was solved, a specific variable changed its bounds, or a new primal solution was found,
- display handlers to create additional columns in the solvers output.
- dialog handlers to extend the included command shell.
- Every existing unit is implemented as a plugin, leading to an interface flexible enough to meet the needs of most additional user extensions.
- A dynamic cut pool management is included.
- The user may mix preprocessed and active problem variables in expressions: they are automatically transformed to corresponding active problem variables.
- Arbitrarily many children per node can be created, and the different children can be arbitrarily defined.
- It has an open LP solver support (currently supporting ILOG CPLEX, Dash XPress-MP, SoPlex, and CLP.
- The LP relaxation need not to be solved at every single node (it can even be turned off completely, mimicing a pure constraint solver).
- Additional relaxations (e.g., semidefinite relaxations or Lagrangian relaxations) can be included, working in parallel or interleaved.
- Conflict analysis can be applied to learn from infeasible subproblems.
- Dynamic memory management reduces the number of operation system calls with automatic memory leakage detection in debug mode.
Enhancements:
- The new heuristics "RENS", "mutation", "veclendiving", and "intshifting", were included.
- The existing ones were improved.
- Presolving and c-MIR cut generation were improved.
- A few bugs were fixed.
Download (MB)
Added: 2006-09-01 License: Other/Proprietary License Price:
1154 downloads
LM-Solve 0.8.1
LM-Solve is a solver for Logic Mazes. more>>
LM-Solve project is a solver for Logic Mazes.
LM-Solve is a solver for several types of the puzzles present on the Logic Mazes site.
It currently supports Alice Mazes, Number Mazes, Plank Puzzles, Theseus and the Minotaur Mazes, and Tilt Mazes.
They are written in Perl and should be very portable.
Use the CPAN.pm module install Games::LMSolve command to install LM-Solve. For instance, invoke the following command on the command line:
# perl -MCPAN -e install Games::LMSolve
<<lessLM-Solve is a solver for several types of the puzzles present on the Logic Mazes site.
It currently supports Alice Mazes, Number Mazes, Plank Puzzles, Theseus and the Minotaur Mazes, and Tilt Mazes.
They are written in Perl and should be very portable.
Use the CPAN.pm module install Games::LMSolve command to install LM-Solve. For instance, invoke the following command on the command line:
# perl -MCPAN -e install Games::LMSolve
Download (0.020MB)
Added: 2006-12-21 License: Public Domain Price:
1038 downloads
Spin 1.5
Spin is a transparent threading solution for non-freezing Swing applications. more>>
Spin is a transparent threading solution for non-freezing Swing applications.
Every non trivial GUI sooner or later encounters the problem of "freeze".
This annoying behaviour is experienced by users every time the application performs extensive calculations or blocks for network or disk I/O.
Spin offers a new approach for solving this problem.
It offers transparent thread handling with minimal impact on your application code.
Enhancements:
- Now built with Maven.
<<lessEvery non trivial GUI sooner or later encounters the problem of "freeze".
This annoying behaviour is experienced by users every time the application performs extensive calculations or blocks for network or disk I/O.
Spin offers a new approach for solving this problem.
It offers transparent thread handling with minimal impact on your application code.
Enhancements:
- Now built with Maven.
Download (0.49MB)
Added: 2007-03-31 License: GPL (GNU General Public License) Price:
939 downloads
DOLFIN 0.7.0-1
DOLFIN is the C++ interface of the FEniCS project. more>>
DOLFIN project is the C++ interface of FEniCS, providing a consistent PSE (Problem Solving Environment) for solving ordinary and partial differential equations.
Main features:
- Simple, consistent and intuitive object-oriented API
- Automatic and efficient evaluation of variational forms through FFC
- Automatic and efficient assembly of linear systems
- Support for general families of finite elements, including continuous and discontinuous Lagrange finite elements of arbitrary order on triangles and tetrahedra through FIAT
- Support for arbitrary mixed elements, including Taylor-Hood
- High-performance parallel linear algebra through PETSc with simple C++ wrappers
- Triangular and tetrahedral meshes, including adaptive mesh refinement and mesh hierarchies
- Multi-adaptive mcG(q)/mdG(q) and mono-adaptive cG(q)/dG(q) ODE solvers
- Support for a range of output formats for post-processing, including DOLFIN XML, MATLAB, Octave, OpenDX, GiD, Tecplot and Paraview/VTK
- SWIG-generated Python interface PyDOLFIN (experimental) in addition to the standard C++ interface
<<lessMain features:
- Simple, consistent and intuitive object-oriented API
- Automatic and efficient evaluation of variational forms through FFC
- Automatic and efficient assembly of linear systems
- Support for general families of finite elements, including continuous and discontinuous Lagrange finite elements of arbitrary order on triangles and tetrahedra through FIAT
- Support for arbitrary mixed elements, including Taylor-Hood
- High-performance parallel linear algebra through PETSc with simple C++ wrappers
- Triangular and tetrahedral meshes, including adaptive mesh refinement and mesh hierarchies
- Multi-adaptive mcG(q)/mdG(q) and mono-adaptive cG(q)/dG(q) ODE solvers
- Support for a range of output formats for post-processing, including DOLFIN XML, MATLAB, Octave, OpenDX, GiD, Tecplot and Paraview/VTK
- SWIG-generated Python interface PyDOLFIN (experimental) in addition to the standard C++ interface
Download (6.5MB)
Added: 2007-06-24 License: GPL (GNU General Public License) Price:
852 downloads
A Sudoku Solver in C 1.11
A Sudoku Solver in C is a console-based Linux program, written in C language, that solves Su Doku puzzles using deductive logic. more>>
A Sudoku Solver in C is a console-based Linux program, written in C language, that solves Su Doku puzzles using deductive logic. It will only resort to trial-and-error and backtracking approaches upon exhausting its deductive moves.
Puzzles must be of the standard 9x9 variety using the (ASCII) characters 1 through 9 for the puzzle symbols. Puzzles should be submitted as 81 character strings which, when read left-to-right will fill a 9x9 Sudoku grid from left-to-right and top-to-bottom. In the puzzle specification, the characters 1 - 9 represent the puzzle givens or clues. Any other non-blank character represents an unsolved cell.
The puzzle solving algorithm is home grown. I did not borrow any of the usual techniques from the literature, e.g. Donald Knuths "Dancing Links." Instead I rolled my own from scratch as a personal challenge. As such, its performance can only be blamed on yours truly. Still, I feel it is quite fast. On a 333 MHz Pentium II Linux box it solves typical medium force puzzles in approximately 800 microseconds or about 1,200 puzzles per second, give or take. On an Athlon XP 3000 it solves about 6,600 puzzles per sec. (Solving time is dependent upon degree of difficulty, so YMMV.)
Description of Algorithm:
The puzzle algorithm initially assumes every unsolved cell can assume every possible value. It then uses the placement of the givens to refine the choices available to each cell. I call this the markup phase.
After markup completes, the algorithm then looks for singleton cells with values that, due to constraints imposed by the row, column, or 3x3 region, may only assume one possible value. Once these cells are assigned values, the algorithm returns to the markup phase to apply these changes to the remaining candidate solutions. The markup/singleton phases alternate until either no more changes occur, or the puzzle is solved. I call the markup/singleton elimination loop the Simple Solver because in a large percentage of cases it solves the puzzle.
If the simple solver portion of the algorithm doesnt produce a solution, then more advanced deductive rules are applied.
Ive implemented two additional rules as part of the deductive puzzle solver. The first is subset elimination wherein a row/column/region is scanned for X number of cells with X number of matching candidate solutions. If such subsets (or tuples) are found in the row, column, or region, then the candidates values from the subset may be eliminated from all other unsolved cells within the row, column, or region, respectively.
The next deductive rule examines each region looking for candidate values that exclusively align themselves along a single row or column, i.e. a vector. If such candidate values are found, then they may be eliminated from the cells outside of the region that are part of the aligned row or column.
Note that each of the advanced deductive rules calls all preceeding rules, in order, if that advanced rule has effected a change in puzzle markup.
Finally, if no solution is found after iteratively applying all deductive rules, then we begin trial-and-error using recursion for backtracking. A working copy is created from our puzzle, and using this copy the first cell with the smallest number of candidate solutions is chosen. One of the solutions values is assigned to that cell, and the solver algorithm is called using this working copy as its starting point. Eventually, either a solution, or an impasse is reached.
If we reach an impasse, the recursion unwinds and the next trial solution is attempted. If a solution is found (at any point) the values for the solution are added to a list. Again, so long as we are examining all possibilities, the recursion unwinds so that the next trial may be attempted. It is in this manner that we enumerate puzzles with multiple solutions.
Note that it is certainly possible to add to the list of applied deductive rules. The techniques known as "X-Wing" and "Swordfish" come to mind. On the other hand, adding these additional rules will, in all likelihood, slow the solver down by adding to the computational burden while producing very few results. Ive seen the law of diminishing returns even in some of the existing rules, e.g. in subset elimination I only look at two and three valued subsets because taking it any further than that degraded performance.
Enhancements:
- Code optimization has resulted in a 30% increase in speed.
<<lessPuzzles must be of the standard 9x9 variety using the (ASCII) characters 1 through 9 for the puzzle symbols. Puzzles should be submitted as 81 character strings which, when read left-to-right will fill a 9x9 Sudoku grid from left-to-right and top-to-bottom. In the puzzle specification, the characters 1 - 9 represent the puzzle givens or clues. Any other non-blank character represents an unsolved cell.
The puzzle solving algorithm is home grown. I did not borrow any of the usual techniques from the literature, e.g. Donald Knuths "Dancing Links." Instead I rolled my own from scratch as a personal challenge. As such, its performance can only be blamed on yours truly. Still, I feel it is quite fast. On a 333 MHz Pentium II Linux box it solves typical medium force puzzles in approximately 800 microseconds or about 1,200 puzzles per second, give or take. On an Athlon XP 3000 it solves about 6,600 puzzles per sec. (Solving time is dependent upon degree of difficulty, so YMMV.)
Description of Algorithm:
The puzzle algorithm initially assumes every unsolved cell can assume every possible value. It then uses the placement of the givens to refine the choices available to each cell. I call this the markup phase.
After markup completes, the algorithm then looks for singleton cells with values that, due to constraints imposed by the row, column, or 3x3 region, may only assume one possible value. Once these cells are assigned values, the algorithm returns to the markup phase to apply these changes to the remaining candidate solutions. The markup/singleton phases alternate until either no more changes occur, or the puzzle is solved. I call the markup/singleton elimination loop the Simple Solver because in a large percentage of cases it solves the puzzle.
If the simple solver portion of the algorithm doesnt produce a solution, then more advanced deductive rules are applied.
Ive implemented two additional rules as part of the deductive puzzle solver. The first is subset elimination wherein a row/column/region is scanned for X number of cells with X number of matching candidate solutions. If such subsets (or tuples) are found in the row, column, or region, then the candidates values from the subset may be eliminated from all other unsolved cells within the row, column, or region, respectively.
The next deductive rule examines each region looking for candidate values that exclusively align themselves along a single row or column, i.e. a vector. If such candidate values are found, then they may be eliminated from the cells outside of the region that are part of the aligned row or column.
Note that each of the advanced deductive rules calls all preceeding rules, in order, if that advanced rule has effected a change in puzzle markup.
Finally, if no solution is found after iteratively applying all deductive rules, then we begin trial-and-error using recursion for backtracking. A working copy is created from our puzzle, and using this copy the first cell with the smallest number of candidate solutions is chosen. One of the solutions values is assigned to that cell, and the solver algorithm is called using this working copy as its starting point. Eventually, either a solution, or an impasse is reached.
If we reach an impasse, the recursion unwinds and the next trial solution is attempted. If a solution is found (at any point) the values for the solution are added to a list. Again, so long as we are examining all possibilities, the recursion unwinds so that the next trial may be attempted. It is in this manner that we enumerate puzzles with multiple solutions.
Note that it is certainly possible to add to the list of applied deductive rules. The techniques known as "X-Wing" and "Swordfish" come to mind. On the other hand, adding these additional rules will, in all likelihood, slow the solver down by adding to the computational burden while producing very few results. Ive seen the law of diminishing returns even in some of the existing rules, e.g. in subset elimination I only look at two and three valued subsets because taking it any further than that degraded performance.
Enhancements:
- Code optimization has resulted in a 30% increase in speed.
Download (0.025MB)
Added: 2006-03-27 License: GPL (GNU General Public License) Price:
1332 downloads
Sudoku solver 0.1
Sudoku solver application was created for solving a Sudoku with a backtracking algorithm. more>>
Sudoku solver application was created for solving a Sudoku with a backtracking algorithm. Instead of using a 9 x 9 matrix, it extends the matrix to 10 x 36 (10 rows, 36 columns), storing information in the extra cells.
The last row is used for keeping track of how many cells, for the current column, are still available.
The columns 9-17 (0-based) are used for storing the numbers which are still available in rows 0-8.
The columns 18-26 are used for storing the numbers which are still available in columns 0-8.
The columns 27-35 are used for storing the numbers which are still available in each square (counting from left to right and from top to bottom).
<<lessThe last row is used for keeping track of how many cells, for the current column, are still available.
The columns 9-17 (0-based) are used for storing the numbers which are still available in rows 0-8.
The columns 18-26 are used for storing the numbers which are still available in columns 0-8.
The columns 27-35 are used for storing the numbers which are still available in each square (counting from left to right and from top to bottom).
Download (MB)
Added: 2007-08-20 License: GPL (GNU General Public License) Price:
1712 downloads
Sudoku Savant 1.1
Sudoku Savant is a simple GUI-driven application to solve and generate Sudoku puzzles through logical means. more>>
Sudoku Savant is a simple GUI-driven application to solve and generate Sudoku puzzles through logical means.
Sudoku Savant generates and solves standard Sudoku puzzles with anything from 3x3 to 5x6 or 6x5 grids, using the following strategies:
- Singletons
- Locked candidates
- Number subsets
- X-Wings, Swordfish and Jellyfish
- Both Simple and Multi-Colouring.
These strategies should be enough to provide a step by step solution for any Sudoku puzzle that you are likely to find in a newspaper or magazine, although Savant can also resort to "trial and error" if presented with something really pathologically nasty. (This will at least confirm that the puzzles solution is unique.)
You may also parameterise or turn off the more advanced strategies, to see whether they were really needed.
Finally, Sudoku Savant lets you solve the puzzle by hand, providing hints, cell colouring, up to 4 pencil marks per cell, and the ability to high-light any incorrect moves. A partially completed puzzle can be saved in a simple text format so that you can continue solving it later.
<<lessSudoku Savant generates and solves standard Sudoku puzzles with anything from 3x3 to 5x6 or 6x5 grids, using the following strategies:
- Singletons
- Locked candidates
- Number subsets
- X-Wings, Swordfish and Jellyfish
- Both Simple and Multi-Colouring.
These strategies should be enough to provide a step by step solution for any Sudoku puzzle that you are likely to find in a newspaper or magazine, although Savant can also resort to "trial and error" if presented with something really pathologically nasty. (This will at least confirm that the puzzles solution is unique.)
You may also parameterise or turn off the more advanced strategies, to see whether they were really needed.
Finally, Sudoku Savant lets you solve the puzzle by hand, providing hints, cell colouring, up to 4 pencil marks per cell, and the ability to high-light any incorrect moves. A partially completed puzzle can be saved in a simple text format so that you can continue solving it later.
Download (0.14MB)
Added: 2006-07-18 License: GPL (GNU General Public License) Price:
1197 downloads
sudoku solver by darsie 1.6
sudoku solver by darsie is a console-based sudoku solver. more>>
sudoku solver by darsie project is a console-based sudoku solver.
sudoku solver by darsie is a console program that reads data from stdin (typically redirected from a file) and prints a possibly partial result. Definitive numbers are printed all over their fields.
Other fields contain the numbers that are not yet excluded.
Three solving rules are implemented and most sudokus are solved in a few milliseconds.
Usage:
sudoku<<less
sudoku solver by darsie is a console program that reads data from stdin (typically redirected from a file) and prints a possibly partial result. Definitive numbers are printed all over their fields.
Other fields contain the numbers that are not yet excluded.
Three solving rules are implemented and most sudokus are solved in a few milliseconds.
Usage:
sudoku<<less
Download (0.035MB)
Added: 2007-01-02 License: GPL (GNU General Public License) Price:
1029 downloads
Spectalum rev31
Spectalum project is an engine for the CRPG Eye of the Beholder II. more>>
Spectalum project is an engine for the CRPG Eye of the Beholder II.
Spectalum is a reverse engineered Open Source game engine for the 1991 CRPG Eye of the Beholder II: The Legend of Darkmoon originally developed by Westwood Associates.
Like with most similar projects, the original game data has to be obtained seperately to play the game.
Why..?
Because I loved this game so much - I played it a long long time ago on my Amiga 500 and later on my first PC.
Another point is my interest in classic gaming technologies. I think this Dungeon-Master style is very interesting from a gamers - and a programmers view. You can create fascinating worlds with very low system resources.
How to play
Copy your original game datafiles (ENGLISH version only) into the "original" game folder. Now start the game with the remake-binary (e.g. spectalum.exe).
Eye of the Beholder - the Legend of Darkmoon is a classic role playing game from the early 90s. You move through a static tile-based 3D environment solving puzzles and hunting monsters.
What do I need to play this remake?
My ambition is to create a system-independent 100% remake of the great original. That means old-school 320x200 role playing gameplay. By using the SDL multimedia library and general C++ coding standards the game will run on any libSDL supported platform.
<<lessSpectalum is a reverse engineered Open Source game engine for the 1991 CRPG Eye of the Beholder II: The Legend of Darkmoon originally developed by Westwood Associates.
Like with most similar projects, the original game data has to be obtained seperately to play the game.
Why..?
Because I loved this game so much - I played it a long long time ago on my Amiga 500 and later on my first PC.
Another point is my interest in classic gaming technologies. I think this Dungeon-Master style is very interesting from a gamers - and a programmers view. You can create fascinating worlds with very low system resources.
How to play
Copy your original game datafiles (ENGLISH version only) into the "original" game folder. Now start the game with the remake-binary (e.g. spectalum.exe).
Eye of the Beholder - the Legend of Darkmoon is a classic role playing game from the early 90s. You move through a static tile-based 3D environment solving puzzles and hunting monsters.
What do I need to play this remake?
My ambition is to create a system-independent 100% remake of the great original. That means old-school 320x200 role playing gameplay. By using the SDL multimedia library and general C++ coding standards the game will run on any libSDL supported platform.
Download (0.56MB)
Added: 2007-03-12 License: Freeware Price:
957 downloads
sudoku-perl 1.50
sudoku-perl is a Sudoku player that offers a board, assistance, and solving using a (text based) ANSI screen. more>>
sudoku-perl is a Sudoku player that offers a board, assistance, and solving using a (text based) ANSI screen. sudoku-perl offers a simple alphanumeric board display that supports the 9x9 matrix.
It does not generate a Sudoku puzzle; for this, the user must look on the Internet, newspapers, Sudoku booklets, etc. and take over the sudoku initial setting from there.
However, it assists the user in solving the Sudoku by providing some functions, up to and including solving the Sudoku from the current board setting.
<<lessIt does not generate a Sudoku puzzle; for this, the user must look on the Internet, newspapers, Sudoku booklets, etc. and take over the sudoku initial setting from there.
However, it assists the user in solving the Sudoku by providing some functions, up to and including solving the Sudoku from the current board setting.
Download (0.020MB)
Added: 2006-10-07 License: Artistic License Price:
1116 downloads
JSokoApplet 1.23
JSokoApplet is a Java applet for playing the game of Sokoban. more>>
JSokoApplet is a Java applet for playing the game of Sokoban. It features path finding, auto push, auto solving, undo/redo, deadlock detection, and more
JSokoApplet project is written in Java. You must have Java installed to start the game.
There are two ways of starting the program:
1. Starting the program as an applet:
Load the html-file in your browser (usually by doubleclicking the html-file). The applet should be loaded automatically with that html-file.
2. Starting the program as an application:
a) Start the batch-file "Start JSokoApplication.bat" (Windows users)
or
b) open a console window, go to the folder where the file "JSokoApplet.jar" is located and type: java -jar JSokoApplet.jar
or
c) Just double click the file "JSokoApplet.jar"
If the program doesnt start please check if you have Java installed.
If you have questions about how to start the program write to "x-brain@uni.de"
The game:
"Sokoban" is a puzzle game invented in Japan 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 can be pushed at a time. The player can only move on "free" (= no wall and no box) fields.
A level is solved if all boxes have been pushed to specially marked positions.
One field can just be occupied by only one of the following levelelements 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 positions where you lost the possibility to solve the level (for example, if you pushed a box in a corner) by showing you the message that the level isnt solvable anymore.
Note: Recognizing positions that are unsolvable is very difficult. Hence the computer just shows this message for some kinds of unsolvable positions.
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]
Restart level: [Enter]
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 the target position. 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 mousebutton will undo the last done activity.
<<lessJSokoApplet project is written in Java. You must have Java installed to start the game.
There are two ways of starting the program:
1. Starting the program as an applet:
Load the html-file in your browser (usually by doubleclicking the html-file). The applet should be loaded automatically with that html-file.
2. Starting the program as an application:
a) Start the batch-file "Start JSokoApplication.bat" (Windows users)
or
b) open a console window, go to the folder where the file "JSokoApplet.jar" is located and type: java -jar JSokoApplet.jar
or
c) Just double click the file "JSokoApplet.jar"
If the program doesnt start please check if you have Java installed.
If you have questions about how to start the program write to "x-brain@uni.de"
The game:
"Sokoban" is a puzzle game invented in Japan 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 can be pushed at a time. The player can only move on "free" (= no wall and no box) fields.
A level is solved if all boxes have been pushed to specially marked positions.
One field can just be occupied by only one of the following levelelements 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 positions where you lost the possibility to solve the level (for example, if you pushed a box in a corner) by showing you the message that the level isnt solvable anymore.
Note: Recognizing positions that are unsolvable is very difficult. Hence the computer just shows this message for some kinds of unsolvable positions.
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]
Restart level: [Enter]
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 the target position. 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 mousebutton will undo the last done activity.
Download (1.0MB)
Added: 2006-12-11 License: GPL (GNU General Public License) Price:
1050 downloads
jscl-meditor 2.3
jscl-meditor is a java symbolic computing library and mathematical editor. more>>
jscl-meditor is a java symbolic computing library and mathematical editor.
Main features:
- polynomial system solving
- vectors and matrices
- factorization
- derivatives
- integrals (rational functions)
- boolean algebra
- simplification
- MathML output
- Java code generation
- geometric algebra
Regarding readability, the goal is to produce a code as nice and short as the pseudo-code found in textbooks or research papers. As an illustration, here is what the Euclidean algorithm would look like:
Polynomial gcd(Polynomial p, Polynomial q) {
while(q.signum()!=0) {
Polynomial r=p.remainder(q);
p=q;
q=r;
}
return p;
}
It entails a dedicated development effort. This choice of clear coding, enabled by java, may have consequences in terms of performance compared to other software. But it could be worth the commitment, in the respect that understanding an algorithm just by looking at the code is made possible. For instance, object-orientation allows to hide ugly optimizations behind a clean, easy to use interface.
Some may doubt however that java will ever be as clear as C++ because it doesnt provide operator overloading, which means that a+b is written a.add(b), and will remain as such. The interested reader can look at the ongoing discussion on the matter at Sun.
As for portability, it means that a lot of platforms are available at no cost, from powerful unix workstations or servers to handheld devices. To make it possible, the project is split in two parts : the engine (jscl) and the mathematical editor front-end (meditor). The engine is usable interactively or in batch mode from a java shell interpreter (like BeanShell for instance), or as a java library in any third-party application.
The front-end has currently two implementations (see below). Among others, it is intended for taking course notes. With it, a student can perform the calculations asked by their teacher fast and reliably. The plain text format should make the exchange of notes easy. The produced worksheets can be published on-line thanks to the MathML output feature, for instance on meditorworld (MathML capable browser needed, tested to work with Mozilla).
<<lessMain features:
- polynomial system solving
- vectors and matrices
- factorization
- derivatives
- integrals (rational functions)
- boolean algebra
- simplification
- MathML output
- Java code generation
- geometric algebra
Regarding readability, the goal is to produce a code as nice and short as the pseudo-code found in textbooks or research papers. As an illustration, here is what the Euclidean algorithm would look like:
Polynomial gcd(Polynomial p, Polynomial q) {
while(q.signum()!=0) {
Polynomial r=p.remainder(q);
p=q;
q=r;
}
return p;
}
It entails a dedicated development effort. This choice of clear coding, enabled by java, may have consequences in terms of performance compared to other software. But it could be worth the commitment, in the respect that understanding an algorithm just by looking at the code is made possible. For instance, object-orientation allows to hide ugly optimizations behind a clean, easy to use interface.
Some may doubt however that java will ever be as clear as C++ because it doesnt provide operator overloading, which means that a+b is written a.add(b), and will remain as such. The interested reader can look at the ongoing discussion on the matter at Sun.
As for portability, it means that a lot of platforms are available at no cost, from powerful unix workstations or servers to handheld devices. To make it possible, the project is split in two parts : the engine (jscl) and the mathematical editor front-end (meditor). The engine is usable interactively or in batch mode from a java shell interpreter (like BeanShell for instance), or as a java library in any third-party application.
The front-end has currently two implementations (see below). Among others, it is intended for taking course notes. With it, a student can perform the calculations asked by their teacher fast and reliably. The plain text format should make the exchange of notes easy. The produced worksheets can be published on-line thanks to the MathML output feature, for instance on meditorworld (MathML capable browser needed, tested to work with Mozilla).
Download (1.8MB)
Added: 2007-08-06 License: LGPL (GNU Lesser General Public License) Price:
812 downloads
Python Stencil Environment 0.3.1
Python Stencil Environment, is a new python library for solving Partial Differential Equations with the Finite Difference Method more>>
Python Stencil Environment also know as PySE is a new python library for solving Partial Differential Equations with the Finite Difference Method (FDM).
This is still a quite new library, and the current release must be considered as beta software. It is quite rough around the edges, installation is manual and some minor dependencies are even missing in the released software. But as PySE already is functional, I have chosen to release the software.
PySE will be a component of PyFDM, a more complete package for working with finite difference methods in python. The functionality of PyFDM is not planned at the moment.
The requirements for PySE are: Python 2.4, numarray 1.3 or newer, Numeric 23.8 or newer, swig 1.3.24 or newer, and pypar 1.9.2. Older verions may or may not work!
Enhancements:
- Added a pdf with some documentation, examples and performance evaluation of PySE.
<<lessThis is still a quite new library, and the current release must be considered as beta software. It is quite rough around the edges, installation is manual and some minor dependencies are even missing in the released software. But as PySE already is functional, I have chosen to release the software.
PySE will be a component of PyFDM, a more complete package for working with finite difference methods in python. The functionality of PyFDM is not planned at the moment.
The requirements for PySE are: Python 2.4, numarray 1.3 or newer, Numeric 23.8 or newer, swig 1.3.24 or newer, and pypar 1.9.2. Older verions may or may not work!
Enhancements:
- Added a pdf with some documentation, examples and performance evaluation of PySE.
Download (0.092MB)
Added: 2005-11-16 License: GPL (GNU General Public License) Price:
1439 downloads
Math::Polynomial::Solve 2.11
Math::Polynomial::Solve is a Perl module to find the roots of polynomial equations. more>>
Math::Polynomial::Solve is a Perl module to find the roots of polynomial equations.
SYNOPSIS
use Math::Complex; # The roots may be complex numbers.
use Math::Polynomial::Solve qw(poly_roots);
my @x = poly_roots(@coefficients);
or
use Math::Complex; # The roots may be complex numbers.
use Math::Polynomial::Solve qw(poly_roots get_hessenberg set_hessenberg);
#
# Force the use of the matrix method.
#
set_hessenberg(1);
my @x = poly_roots(@coefficients);
or
use Math::Complex; # The roots may be complex numbers.
use Math::Polynomial::Solve
qw(linear_roots quadratic_roots cubic_roots quartic_roots);
# Find the roots of ax + b
my @x1 = linear_roots($a, $b);
# Find the roots of ax**2 + bx +c
my @x2 = quadratic_roots($a, $b, $c);
# Find the roots of ax**3 + bx**2 +cx + d
my @x3 = cubic_roots($a, $b, $c, $d);
# Find the roots of ax**4 + bx**3 +cx**2 + dx + e
my @x4 = quartic_roots($a, $b, $c, $d, $e);
<<lessSYNOPSIS
use Math::Complex; # The roots may be complex numbers.
use Math::Polynomial::Solve qw(poly_roots);
my @x = poly_roots(@coefficients);
or
use Math::Complex; # The roots may be complex numbers.
use Math::Polynomial::Solve qw(poly_roots get_hessenberg set_hessenberg);
#
# Force the use of the matrix method.
#
set_hessenberg(1);
my @x = poly_roots(@coefficients);
or
use Math::Complex; # The roots may be complex numbers.
use Math::Polynomial::Solve
qw(linear_roots quadratic_roots cubic_roots quartic_roots);
# Find the roots of ax + b
my @x1 = linear_roots($a, $b);
# Find the roots of ax**2 + bx +c
my @x2 = quadratic_roots($a, $b, $c);
# Find the roots of ax**3 + bx**2 +cx + d
my @x3 = cubic_roots($a, $b, $c, $d);
# Find the roots of ax**4 + bx**3 +cx**2 + dx + e
my @x4 = quartic_roots($a, $b, $c, $d, $e);
Download (0.015MB)
Added: 2007-07-19 License: Perl Artistic License Price:
832 downloads
logiK 0.2
logiK project for creating and solving puzzles like those in PM Creativity Trainer. more>>
logiK can create and solve puzzles like those in PM Creativity Trainer.
You can create a puzzle form an image file and try to solve it. An example puzzle called start.xml is included.
Installation:
The simplest way to compile this package is:
1. `cd to the directory containing the packages source code and type `./configure to configure the package for your system. If youre using `csh on an old version of System V, you might need to type `sh ./configure instead to prevent `csh from trying to execute `configure itself.
Running `configure takes a while. While running, it prints some messages telling which features it is checking for.
2. Type `make to compile the package.
3. Type `make install to install the programs and any data files and documentation.
4. You can remove the program binaries and object files from the source code directory by typing `make clean.
Enhancements:
- new creation algorithm now detects edges first
- you can now insert a row or column of the solution into the puzzle
<<lessYou can create a puzzle form an image file and try to solve it. An example puzzle called start.xml is included.
Installation:
The simplest way to compile this package is:
1. `cd to the directory containing the packages source code and type `./configure to configure the package for your system. If youre using `csh on an old version of System V, you might need to type `sh ./configure instead to prevent `csh from trying to execute `configure itself.
Running `configure takes a while. While running, it prints some messages telling which features it is checking for.
2. Type `make to compile the package.
3. Type `make install to install the programs and any data files and documentation.
4. You can remove the program binaries and object files from the source code directory by typing `make clean.
Enhancements:
- new creation algorithm now detects edges first
- you can now insert a row or column of the solution into the puzzle
Download (0.56MB)
Added: 2006-04-01 License: GPL (GNU General Public License) Price:
1301 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above solving search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed