GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
LM-SOLVE(1) User Contributed Perl Documentation LM-SOLVE(1)

lm-solve - A Computerized Solver for Logic Mazes

lm-solve [options] Input File

This program is a front end for the LM-Solve Perl modules that can be used to solve any of the number of Logic Mazes present on the Logic Mazes site (http://www.logicmazes.com/) and similar sites.

To use this program you should create a text file describing the layout of the game and your current position (most probably the initial one). Then invoke lm-solve with its path as input. Alternatively, by specifiying - as the filename, then lm-solve will read the layout from the standard input.

One can find an archive containing some written-down layouts for some of the puzzles on the web on the LM-Solve homepage. The format of the layouts for the various puzzle types is described below.

--help -h -?
Display a help message on the screen.
--man
Invoke the UNIX man command to display the man-page of this program.
-g variant | --game variant
Specify the variant to use for the game. Currently available variants are:

alice - Alice Mazes

minotaur - Theseus and the Minotaur Mazes

numbers - Number Mazes

plank - Planks in the Swamp Puzzles

tilt_single - Tilt Mazes with one goal

tilt_multi - Tilt Mazes with multiple goals

tilt_rb - A Red-Blue Tilt Puzzle

--rle --norle
This options toggle run-length encoding of the moves displayed on and off. What it means is that several identical consecutive moves will be displayed as "move * number".

The default is --rle.

--output-states --nooutput-states
--output-states will precede each line with the state of the game up to the move displayed on it. The default is --nooutput-states
--method scan
Specifies the scan to use for solving the game:

brfs - Breadth-First Search. Finds minimal solutions, but possibly slower than other scans.

dfs - Depth-First Search.

--rtd --nortd
--rtd stands for "Run-Time Display". This option will print the states of the scan that were arrived to, as the scan encounters them. The default is --nortd.

The format of the board is that of a file containing keys and values on each line, in the format "key=value". A value can be an integer (e.g: "x=6"), an (x,y) integral pair (e.g: "dims=(3,6)"), an array of pairs (e.g: "goals="[(5,6), (3,8), (0, 3)]"), an array of start and end pairs (e.g: "Planks = [ ((0,2) -> (3,2)) , ((6,5) -> (7,5)) ]") or a layout specification. The latter begins with "<<EOF" where EOF is a terminator and extends from the next line down to the first line containing the terminator.

Whitespace and newlines are generally ignored and the keys are case-insensitive.

Dims is an (x,y) value that specifies the dimensions of the board. layout is the layout of the board. The cells are specified row by row, from top to bottom and from left to right. Newlines and whitespace between each cell are ignored as well as lines beginning with a sharp-sign ("#").

Each cell is surrounded by square brackets and contains several flags separated by commas. The flags are:

N,S,E,W
Specifies North, South, East and West arrows respectively.
NE,NW,SE,SW
Likewise for North-East, North-West, South-East and South-West
ADD
Specifies that this cell increases the step by 1.
SUB
Specifies that this cell decreases the step by 1.
GOAL
The goal cell.
START
The start cell.
BLANK
A blank cell that may not be stepped on.

Examples can be found in the layouts archive.

The keys and values required for this format are:
Dims
An (x,y) pair that specifies the (x,y) dimensions of the board.
Exit
An (x,y) pair that specifies the (x,y) coordinates of the exit. (starting at (0,0) for the top-left corner.)
Thes
(x,y) - The initial coordinates of Theseus.
Mino
(x,y) - The initial coordinates of the Minotaur.
layout
This is a layout in the following format: The first line contains width characters that are either whitespace (" ") or a "-" or a "_" depending if there is a horizontal wall at that position. The second line contains width+1 characters that are either whitespace or a "|" sign depending if there is a vertical wall at that position.

The horizontal-walls and vertical-wall lines intermingle this way until the bottom line which specifies horizontal walls.

Examples can be found in the layouts archive.

Dims is an (x,y) key that specifies the dimensions of the board. Start is an (x,y) key that specifies the starting position (starting from (0,0) at the top-left corner). The key layout is a layout key that contains the layout of the board.

The layout contains a line for every row, and every cell is represented as a character. It contains a digit for its number or an asterisk ("*") if it is the goal cell.

Examples can be found in the layouts archive.

Dims is an (x,y) key that speciifes the dimensions of the board. Start is an (x,y) pair that specifies the coordinates of the start (starting from 0). Goal is an (x,y) pair that determines the location of the single goal.

layout contains a scheme of horizontal and vertical walls similar to the Minotaur's mazes.

Dims is an (x,y) key that speciifes the dimensions of the board. Start is an (x,y) pair that specifies the coordinates of the start (starting from 0). Goals is an (x,y) array that determines the locations of the goals.

layout contains a scheme of horizontal and vertical walls similar to the Minotaur's mazes.

Dims is an (x,y) key that specifies the dimensions of the board. Blue_Start and Red_Start are two (x,y) keys which specify the starting positiones of the red and blue markers. Red_Goal and Blue_Goal are their respective goals.

layout contains a scheme of horizontal and vertical walls similar to the Minotaur's mazes.

Dims is an (x,y) key that specifies the dimensions of the board. Planks is an array of start and end pairs specifying the start and end coordinates of the planks. layout is a layout that matches the size specified by Dims that has an X where a stump is present, G where the goal is and any other character (preferably a whitespace) where nothing is present.

The first plank in "Planks" is the active plank.

LM-Solve's Homepage:

http://vipe.technion.ac.il/~shlomif/lm-solve/

The Logic Mazes Homepage:

http://www.logicmazes.com/

Click Mazes:

http://www.gjnem.demon.co.uk/

Shlomi Fish <shlomif@vipe.technion.ac.il>
2009-06-28 perl v5.32.1

Search for    or go to Top of page |  Section 1 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.