DESCRIPTION

The idea for this game comes from a Windows game called "Marble," by
Analogue Software. GFingerPoken is basically Marble, rewritten from
scratch for GTK.
The game starts with the configuration dialog. Here you can set the
relative abundance of the different mirror types, the size of the grid,
the amount of mirrors in it, and how much the mirror density should
vary.
In the top left, there are load and save buttons to load and save
existing games. The save button is not visible if no game is in
progress. Press OK when you’re happy with the settings to start the
actual game.
You can throw balls into the grid by clicking around the edges. There
are 4 of them, but they all work the same way. You’ll see your ball
roll through the empty corridor, then you’ll see a white in arrow and
an out arrow. Your job is to drag the mirrors from the side into the
maze and set up your maze to be the same as the output indicates, i.e.,
so your ball always goes out where the arrow says it should. You have
to use all of the mirrors on the side. If an item has a some arrows in
the center, it is flippable; click on it, and it will change between
its states. Furthermore, every time these items are hit within the
maze, either yours or the computer’s, they will be flipped also. So
your maze must be synchronized with the invisible one. When you think
that your maze perfectly matches the output, click the check button and
see if you were right.
If you right-click on a grid square, you will cycle through a picture
that appears in the corner: a circle, a triangle, a square, and
nothing. These symbols do nothing, but you can use them to indicate
what you think may be in the square. For example, a circle could mean
you think nothing is there, a triangle something is there, and a square
that you’re pretty sure whatever’s there is right.
The button in the top left lets you abort the current game and start a
new one. This is what you should do if you want to save the game. If
you want to continue playing after saving, cancel the creation of the
new game.

MIRRORTYPES

Simplemirrors
The ball rolls toward it. The ball hits it. The ball rolls in
a different direction. Very simple. They are shaped / and .
Flippingmirrors
The ball hits it and rolls in a different direction, but then
the mirror changes shape according to its little indicator.
There are two cycle mirrors which go between / and shapes, and
four cycle mirrors which cycle this way: / o o . (The little
"o" representing a box, coming up next.)
This is where the game begins to get devious. Your setup must
match the functionality of the invisible one exactly. Meaning
you have to get the alignment of these precisely perfect. To
change the alignment of one, click on it.
Box and sink
Basically they are opposites. A box will repel the ball in the
opposite direction that it came from, and a sink will "eat" the
ball, resulting in NO output arrow.
Axialmirrors
They will let the ball come through on one axis (i.e. vertically
or horizontally) but bounce it back on the other. There are
both simple and flipping axial mirrors for your amusement.
Rotators
These are quite similar to normal mirrors, only they redirect
the ball in a different sort of way. There are clockwise and
counterclockwise varieties as well as a flipper.
OneWayMirrors
Only one order away from pure evil, one way mirrors will boggle
the mind for centuries if used liberally. They are just like
normal static mirrors, except they only let the ball travel
right through it in two (perpendicular) directions and bounce it
off in the other two. These can cause an infinite loop if used
wrecklessly, which the random computer is fairly likely to do.
In that case, there is no output arrow, just like when the ball
falls into a sink.
PUREEVIL
There are two varieties: fllipping one way mirrors, and moving
mirrors. Flipping one way mirrors can flip in either a
clockwise or counterclockwise direction. Moving mirrors, when
hit, will travel one square in the direction they were hit,
after being hit, so your ball will travel as if a simple mirror
had been where the mirror was just sitting.

NETWORKGAME

Network games work a lot like single player games. To setup a network
game, you must be in the game window (so create a game, the settings
don’t matter). Then click the "start network game" button. That opens
a new dialog window. You can leave the type at "Auto" unless you’ve
picked out who you want to be client and server. Auto will try client
first, and if it doesn’t work it will go to server. Server gets to
choose the level layout and also gets to go first, so you could give it
to your opponent if you want to be nice. Going first isn’t really an
advantage though, as you’ll soon find out. You should probably leave
the port unless it’s used so it can become a defacto standard. If you
are server, the address restricts connections to only ones originating
from this address; if you are client, it will connect to this address.
Similarly, server sets the port to listen on and client connects to
this port.
Also, you’ll have to choose the game type. The server overrides
whatever the client has. With "Shared board," both players manipulate
the same board and both see changes made immediately. (It’s
graphically much cooler.) Players take turns manipulating the board.
With "Individual boards," each player has his own board and cannot see
the other player’s board. Players each perform one manipulation to
their board simultaneously. Otherwise, the games are similar.
A manipulation consists of these steps:
1) Rearrange the pieces however you’d like. (This includes moving them
in and out of the sidebar.) This may be zero rearrangements.
2) Perform exactly one test (i.e. click along the border to toss in a
ball)
3) Again perform as many rearrangements as you’d like.
4) Click on the right arrow to indicate that you’re done.
Either before or after a manipulation, if the board is potentially
solvable, you may click the check button if you think it’s solved. If
you’re right, you win; if you’re wrong, you lose.
Note that you *must* perform a manipulation during each of your turns,
which should discourage a standoff in shared board mode.
Finally, the half balls that appear next to the board are your history.
The whole reason for the 4 different ball colors is to differentiate
your last 4 moves in the history. So the black in arrow superimposed
atop the purple ball half should have a corresponding black out arrow
also superimposed atop a purple ball half. If not, that part of the
history must have been erased because another out move went on top of
it, or perhaps because the ball was eaten somehow and thus never came
out.