NAME
xpyraminx - Pyramid X widget
SYNOPSIS
/usr/games/xpyraminx [-geometry [{width}][x{height}][{+-
}{xoff}[{+-}{yoff}]]] [-display [{host}]:[{vs}]] [-[no]mono]
[-[no]{reverse|rv}] [-{foreground|fg} {color}] [-
{background|bg} {color}] [-{border|bd} {color}] [-
face{0|1|2|3} {color}] [-{size {int} | sticky}] [-{mode
{int} | both}] [-[no]orient] [-[no]practice] [-delay msecs]
[-{font|fn} {fontname}] [-username {string}]
DESCRIPTION
The original puzzle has 9 triangles per face (size = 3) and
has period 3 turning (i.e. the face or points turn in 120
degree intervals). The puzzle was designed by Uwe Meffert
and called the Pyraminx. This has 2^5*3^8*6!/2 or
75,582,720 different comibinations.
Another puzzle Senior Pyraminx 3x3x3 exists only on paper,
it has period 2 turning (i.e. edges turn with 180 degree
intervals) but the corners would fall off unless it had some
tricky mechanism. (This may be the same as the Master
Pyraminx which has 446,965,972,992,000 different combina-
tions).
Another puzzle (which was not widely distributed), the
Junior Pyraminx (and similarly the Junior Pyraminx Star, a
octahedron formed by two tetrahedra, this has 7!*3^6 or
3,674,160 different combinations), has 4 triangles (size =
2) per face. This puzzle has been recently reissued by Mef-
fert as Pyramorphix (http://www.mefferts-puzzles.com). At
the time I designed this computer puzzle thought that it had
only period 2 turning (i.e the edges rotate). It turns out
the puzzle has a period 4 turning (edges turn with 90 degree
intervals) which makes it analogous to the 2x2x2 Rubik's
cube. This puzzle makes various non-tetrahedral shapes.
The puzzle contained here has no period 4 turning flexabil-
ity.
One is able to simulate Halpern's Tetrahedron or Pyraminx
Tetrahedron (period 3 turning and sticky mode). Also one
is able to simulate one with variant turning (period 2 turn-
ing and sticky mode).
FEATURES
Press "mouse-left" button to move a piece. Release "mouse-
left" button on a piece on the same face and in the same row
(but not an adjacent piece or the move is ambiguous). The
pieces will then turn towards where the mouse button was
released.
Click "mouse-center", or press "P" or "p" keys to toggle the
practice mode (in practice mode the record should say "prac-
tice"). This is good for learning moves and experimenting.
Click "mouse-right", or press "R" or "r" keys to randomize
(this must be done first to set a new record).
Press "I" or "i" keys to increase the number of "facets".
Press "D" or "d" keys to decrease the number of "facets".
Press "O" or "o" keys to toggle the orient mode. One has to
orient the faces in orient mode, besides getting all the
faces to be the same color. To do this one has to get the
lines to be oriented in the same direction, this only
matters with center "facets", if at all (i.e. those
"facets" not on a corner or edge). This does add complexity
so there are 2 sets of records.
Press "2", "3", "B", or "b" keys (not the keypad 2, 3) to
change modes to Period 2, Period 3, or Both.
Press "Y" or "y" keys to toggle sticky mode
(increase/decrease is disabled here if sticky mode is on).
"Sticky" and "Period 2" turning allows only the edges to
turn, and the 2 center rows turn together. It is as if the
middle cut of the three cuts did not exist.
"Sticky" and "Period 3" turning allows only the faces to
turn, it is as if the middle cut of the three cuts did not
exist.
Beware, the "Sticky" mode is a hack and much could be done
to improve its look.
Press "S" or "s" keys to start auto-solver. Only works on
1x1x1, 2x2x2, and 3x3x3 pyrmaminxs in Period 3 mode.
Press "U" or "u" keys to undo move.
Press "G" or "g" keys to get a saved puzzle.
Press "W" or "w" keys to write or save a puzzle.
Press "C" or "c" keys to clear a puzzle.
Press "Esc" key to hide program.
Press "Q", "q", or "CTRL-C" keys to kill program.
Use the key pad, "R" keys, or arrow keys to move without
mouse clicks.
Key pad is defined for Pyraminx as:
/ Counterclockwise
8 9 Up, Upper Right
^
4<5>6 Left, Clockwise, Right
v
1 2 Lower Left, Down
Use the shift keys to access "Period 3" turns from "Both"
mode, otherwise it assumes "Period 2" turning. Faces and
points turn in "Period 3" and edges (2 points) turn in
"Period 2".
Use the control key and the left mouse button, keypad, or
arrow keys to move the whole tetrahedron. This is not
recorded as a turn.
The title is in the following format (non-motif version):
xpyraminx.{2|3|both<turning modes>}:
{1|2|3|4|5|6|7|sticky<number of "facets" per edge>} @
(<Number of moves>/{<Record number of moves>
<username>|"NEVER noaccess"|"practice"}) - <Comment>
If there is no record of the current puzzle, it displays
"NEVER noaccess".
OPTIONS
-geometry {+|-}X{+|-}Y
This option sets the initial position of the pyram-
inx window (resource name "geometry").
-display host:dpy
This option specifies the X server to contact.
-[no]mono
This option allows you to display on a color screen
as if monochrome (resource name "mono").
-[no]{reverse|rv}
This option allows you to see the pyraminx window in
reverse video (resource name "reverse").
-{foreground|fg} color
This option specifies the foreground of the pyraminx
window (resource name "foreground").
-{background|bg} color
This option specifies the background of the pyraminx
window (resource name "background").
-{border|bd} color
This option specifies the border color of the facets
in the pyraminx window (resource name "border-
Color").
-face{0|1|2|3} <color>
This option allows you to change the color of a face
(resource name "faceColorN"). In mono-mode, color is
represented as the first letter of the color name.
The faces are ordered top to bottom and left to
right. If you has two colors that begin with the
same letter you should have one in uppercase and one
in lowercase to distinguish them in mono-mode. You
can change the colors of the faces to make a stupid
pyraminx (i.e. all White or in mono-mode all "W").
Unfortunately, it will not normally say its solved
when its randomized. This would be cheating.
-size <int>
This option allows you to change the number of
facets on a edge (resource name "size").
-sticky This option allows you to set the sticky mode
(resource name "sticky").
-mode <int>
This option allows you to set the turning mode
(resource name "mode").
-both This option allows you to set the turning mode to
both period 2 and period 3 (resource name "mode" set
at 4).
-[no]orient
This option allows you to access the orient mode
(resource name "orient").
-[no]practice
This option allows you to access the practice mode
(resource name "practice").
-delay msecs
This option specifies the number of milliseconds it
takes to move a tile or a group of tiles one space
(resource name "delay").
-{font|fn} ontname
This option specifies the font that will be used
(resource name "font").
-username string
This option specifies the user name for any records
made or else it will get your login name (resource
name "userName").
RECORDS
You must randomize the puzzle before a record is set,
otherwise an assumption of cheating is made if it is solved
after a get or an auto-solve.
SAVE FORMAT
The format is not standard. The reason for this is that
this is simple to produce and the standard notation is no
good for variable number of "facets" and turning modes.
Pyraminx with default colors, not randomized:
0 B Blue
1 R Red
2 Y Yellow
3 G Green
size: 1-7 <number of triangles in the same orientation
as the face per row>
mode: 2-4 <period 2 turning, period 3 turning, or both
(4)>
orient: 0-1 <0 false, 1 true; if 1 then lines on
"facets" to be oriented>
sticky: 0-1 <0 false, 1 true; if 1 then some "facets"
move together>
practice: 0-1 <0 false, 1 true>
moves: 0-MAXINT <total number of moves>
startingPosition: <2 dimensional array of face "facet"
position, each face has size * size "facets", if orient
mode then orientation number follows face number: 0 up,
1 upper right, 2 right, 3 down, 4 lower left, and 5
left>
This is then followed by the moves, starting from 1.
move #: <face> <position> <direction> <control>
Each turn is with respect to a face and position.
Position is 0 to size * size - 1. Position 0 is the trian-
gle furthest from the center, increasing clockwise.
Direction is represented 0 up, 1 upper right, 2 right, 3
down, 4 lower left, 5 left, 9 clockwise, and 15 counter-
clockwise.
Control is represented as 0 or 1, 1 if the whole tetrahedron
is moved at once (here position does not matter), 0 if not.
The xpyraminx record keeper does not count a control move as
a move, but here we do.
If you have a Pyraminx you can not solve (2x2x2 or 3x3x3),
enter it in pyraminx.log file. Have size = 2 or 3, mode =
3, orient = 0, practice = 0, randomized = 1, and moves = 0
and the number representation for the color of the "facets"
(usually 0=B, 1=R, 2=Y, 3=G). Bring up xpyraminx, hit 'g'
so it will get your configuration and then 's' to solve your
pyraminx and then 'w' to write out the steps. Then examine
your pyraminx.log file.
REFERENCES
James G Nourse, The Simple Solutions to Cubic Puzzles, Ban-
tam Books, New York, November 1981, pp 8-15.
Mastering the Magic Pyramid by Tom Werneck, Evans Brothers
Limited, London, 1981. pp 109-111.
Douglas R. Hofstadter, Beyond Rubik's Cube: spheres, pyram-
ids, dodecahedrons and God knows what else, Scientific Amer-
ican, July 1982, pp 16-31.
John Ewing & Czes Kosniowski, Puzzle it Out: Cubes, Groups
and Puzzles, Cambridge University Press, New York, 1982, pp
60-61.
Magic Cubes 1996 Catalog of Dr. Christoph Bandelow.
SEE ALSO
X(1), xrubik(6), xskewb(6), xdino(6), xoct(6), xmball(6),
xmlink(6), xpanex(6), xcubes(6), xtriangles(6), xhexa-
gons(6), xabacus(6)
COPYRIGHTS
(Reg.) Copyright 1994-2004, David Albert Bagley
BUG REPORTS AND PROGRAM UPDATES
Send bugs (or their reports, or fixes) to the author:
David Albert Bagley, <bagleyd@tux.org>
The latest version is currently at:
ftp://ftp.tux.org/pub/tux/bagleyd/xpuzzles
ftp://ibiblio.org/pub/Linux/games/strategy