To illistrate, imagine a carom billiard table (twice as long as wide with no pockets), where one can locate any point on the table using the Cartesian coordinate system. Let the lower left corner be (0,0) and the upper-right corner (8,4).

A cue ball at (2,2) needs to be aimed at diamond 4 ^{1}/_{2}
on the south cushion so it can strike
the other two balls at (5,3) and (5, 2 ^{1}/_{2})

The "Diamond System" is one way to help figure out the correct
place to aim the cue ball. In this example we have a cue position of 5, and a
natural angle of 1 ^{1}/_{2}, so the diamond to aim at
is

(counting from the right -- this would be 4

The "Diamond system"

The Diamond system is used in 3-cushion billiards find a place to aim the cue ball so that it strikes 3 cushions before hitting any balls.

This system has three steps:

- First find the natural angle off the cushion that would strike both target balls.
- Find the cue position, counting the diamonds differently. Begin near the corner by the
target balls, and count by 1/2 the diamonds (or dots) starting at 1 1/2.
- Subtract the Natural Angle (Step 1) from the Cue position (step 2).
The result is diamond (or dot) that you need to aim at, counting with the same numbering
as Step 1, to strike three cushions before the two other target balls.

Puzzles and Experiments:

1. How many ways can you hit a certain ball bouncing off the same cushion?

2. In 3-Cushion billiards the object of the game is to hit the first ball, and 3 or more cushions before hitting the second ball. Can you design so trick shots? A "system" (Sorry--this version of Pool does not move balls that have been "hit"...maybe later...of if someone else would like to adapt this program to do this...(send me e-mail; I'd like to know)

3. If you hit the ball hard (200), is it easier to design a way that hits *all* the balls or finding a way that *avoids* all of them?

4. Can you make the path of the ball into an interesting shape like a fish, star or snowflake?

*Mathematica* Instructions:

Open and evaluate the initialization cells of "Pool.ma" if it has not already been started.

To change the location of any ball type and evaluate:

WhiteBall={2,4}

or

RedBall = {1,1.8]

or

BlueBall = { 2, 1 — Sqrt[3] }

To show the pool table type and evaluate:

Show[PoolTable]

To Shoot a ball, just list it in the same "Show" statement:

Show [PoolTable, ShootBall [ WhiteBall, down, 3, 4] ]

The "ShootBall" command needs four things:

- The Ball (WhiteBall, RedBall, BlueBall).
- The cushion (up, down, left, right)
- The dot or diamond number (counting from the bottom or left)
- The number of cushions it should bounce against.

So the statement above will show the path of the white ball if it was aimed at the third dot on the bottom cushion, and bounced against four cushions.

Other examples:

WhiteBall={4, 3};

RedBall={5.25,3.25};

BlueBall={5.5, 3};

Show[PoolTable, ShootBall[WhiteBall, down, 6.5, 4]];

If you use both the calculator and the computer, the following terms are equivalent:

dot = diamond

Ball1 = cue ball = WhiteBall

Ball2 = target = RedBall

Ball3 = " = BlueBall