GlassWorks 1.2a
A port of the Macintosh shareware game Stained Glass.
Coded by David Cuny
Based on Stained Glass by Nicholas Schlott.
October 22, 1999
What Is This?
This is a port of the Mac game Stained Glass.
The goal is to eliminate pieces from the board of colored squares.
Some pieces are primary colors, while other colors are combinations
of primary colors.
Disclaimer
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.
I do not accept responsibility for any effects, adverse or otherwise,
that this code may have on you, your computer, your sanity, your dog,
and anything else that you can think of. Use it at your own risk.
How To Play
The goal is to remove all the colors from the playing board. This is
accomplished by jumping colored pieces, much like checkers. Pieces can
jump vertically and horizonatally.
To move a piece, select a colored piece by clicking on it.
The cursor will turn into a '+' to indicate when you are over an piece
that can jump. The jumping piece will be marked with a square,
and squares you can jump to will be outlined with a black border.
To deselect the starting piece, click it again.
Next, move the cursor to where you want that piece to jump to and
click it. The cursor will appear as a "+" when you are over a legal move.
What pieces can move, and the results of that move, depends on the
colors of the pieces involved.
There are six colors in the game:
- Red: Primary color
- Blue: Primary color
- Yellow: Primary color
- Green: Secondary color (Blue+Yellow)
- Orange Secondary color (Red+Yellow)
- Purple Secondary color (Blue+Red)
For convenience, the letter P will be used indicate a primary color,
while S will be used to indicate a secondary color.
There are six rules for jumping pieces. Fortunately, the b half of
the rules are only special cases dealing with destination blank squares.
1a: Primary jumps Primary, Lands on Primary
The Primary colors do not have to be the same colors.
Before moving: [P1] [P2] [P3]
After moving : [Blank] [Blank] [P1+P3]
The final color of the jumping piece will be P1+P3.
For example, a Red piece can jump a Yellow piece to
land on a Blue piece. The Red will then become Purple,
since Red + Blue = Purple.
If P1 and P3 are the same color, the jumping piece will not
change color.
1b: Primary jumps Primary, Lands on Blank
The primaries do not have to be the same colors.
Before moving: [P1] [P2] [Blank]
After moving : [Blank] [Blank] [P1]
For example, a Red piece can jump a Blue piece to land
on a blank square.
2a: Primary jumps Secondary, Lands on Primary
The secondary color S1 must contain the primary
color as one of it's components. The piece with the secondary color
will the have the primary color of the jumping color removed from it.
The color of the final piece will be a blend of the two primaries.
Before moving: [P1] [S1] [P2]
After moving : [Blank] [P2] [P1+P2]
For example, a Red piece can jump an Orange piece to
land on a Blue piece. The Orange will then become Yellow,
since Orange - Red = Yellow, and the Blue will become
Purple, since Red + Blue = Purple.
2b: Primary jumps Secondary, Lands on Blank
The secondary color S1 must contain the primary
color as one of it's components. The piece with the secondary color
will the have the primary color of the jumping color removed from it.
Before moving: [P1] [P1+P2] [Blank]
After moving : [Blank] [P2] [P1]
For example, a Red piece can jump an Orange piece to
land on a blank square. The Orange will then become Yellow,
since Orange - Red = Yellow.
3a: Secondary jumps Secondary, Lands on Secondary
All secondary pieces must be the same color.
Before moving: [S1] [S1] [S1]
After moving : [Blank] [Blank] [S1]
For example, an Green piece can jump an Green piece to
land on another Green piece. The jumping piece remains Green.
3b: Secondary jumps Secondary, Lands on Blank
Both secondary pieces must be the same color.
Before moving: [S1] [S1] [Blank]
After moving : [Blank] [Blank] [S1]
For example, an Orange piece can jump an Ornage piece to
land on a blank square. The jumping piece remains Orange.
What's New With 1.2a?
- New Rules Added
- You can now jump from Primary to Primary over an intervening
Secondary, as long as the Secondary shares a color of the first
Primary. The destination piece is a blend of the two Primaries.
- Valid Jump Indicator
- When an anchor piece is clicked, all the pieces that can be jumped
to are marked.
- Valid Anchor Indicator
- The mouse turns into a '+' when moved over a board piece that is
a valid anchor.
- Undo
- You can now undo your move all the way back to the beginning of
the game.
- New Scorekeeping
- The number of points, as well as the number of remaining points,
is now displayed. A Primary counts as one, and a Secondary as two
(since it takes two jumps to eliminate).
- Same Set Of Colors Per Game
- Each game consists has the same set of colors per game: 12 of
each color, randomly distributed across the board.
- Changing Anchor
- If the anchor point is set and a non-jump piece is clicked, the
anchor will be moved to that point if it is a valid anchor
point. If the point is not a valid anchor, the current anchor
will be removed, but no new anchor set.
What's New With 1.1?
- Changed Board Size
- The board has been reduced from 12x16 to 12x6, making it
much more solvable.