File BILLIA.ZIP from The Programmer’s Corner in
Category Games and Entertainment
The game of Billiards.
File Name File Size Zip Size Zip Type
BILLIARD.DOC 14464 5310 deflated
BILLIARD.EXE 62099 38640 deflated

Contents of the BILLIARD.DOC file

BILLIARDS

The program BILLIARD is a computer simulation of the game of
Carom Billiards. In contrast to the more familiar group of games
referred to as "pocket billiards" or "pool", Carom Billiards is
played on a table without pockets. The object of the game is to
shoot one of the balls (your "cue ball") in such a way that it in
turn collides with two of the other balls on the table (the
"object balls"). Carom Billiards and its variations are played
in most of Europe, North Africa, South and Central America,
Japan, Indonesia and many parts of the United States. BILLIARD
plays six games, three variations of Carom Billiards and three
games which combine aspects of pool and billiards. To play these
games well requires both skill and strategy.

Carom Billiards is usually played with three balls 2 1/4
inches in diameter on a table measuring approximately 100 inches
by 50 inches. One of the balls is white, one is white with two
or three colored dots, and the third is red. One player takes the
white ball as his cue ball, and the other takes the white ball
with the dots. BILLIARD uses five balls rather than three. The
reason for this is to make the game more interesting (and a
little easier) by increasing the number of possible shots.
BILLIARD allows you to choose the speed and direction of motion
of the cue ball and to apply left and right "english" (english is
explained below). It also allows you to replay the last shot and
includes a "learn mode" in which the play is stopped at the
instant of collision. The game accomodates two players, but you
can always play against yourself.

BILLIARD is a realistic simulation of a true billiards game.
The positions of the balls are calculated to an accuracy of
better than 1/100 of an inch (1/10,000 of the length of the table
drawn on the computer screen) and the collisions obey all the
applicable laws of Physics.

BILLIARD simulates the billiard table and balls using the
high resolution mode of the color graphics adapter (640 x 200
pixels). This is a "monochrome graphics" mode; in other words,
the game is not in color. Color graphics at this resolution
require an enhanced graphics adapter (EGA). Even better
resolution (640 x 350 pixels) can be achieved with an EGA and an
enhanced display. The game has been written for the color
graphics adapter in order to make it available to the greatest
number of users. If enough people let me know they are interested
in a version of the program which supports the above "enhanced"
hardware I would be pleased to rewrite it.

TO START

To start the game, at the DOS prompt type BILLIARD, then
press Return (Enter). The file BILLIARD.EXE must be in the active

A>

then the disk containing BILLIARD.EXE must be in the A drive).

THE KEYBOARD

F1 - Pressing F1 gives you a "help screen" with an
abbreviated version of the information below.

F2 - Pressing F2 resets the game to the conditions before the
last shot. You may use this key to take back a shot, or
to experiment with different shots using a particular
arrangement of balls. Pressing F2, then pressing Return
(Enter) replays the last shot.

F3/F4 - These keys increase and decrease the speed of the cue
ball. The speed is displayed on the lower left side of
the screen.

F5/F6 - These keys apply left (L) and right (R) english to the
cue ball. The amount of english applied is also shown
on the lower left side of the screen. The use of english
is discussed below.

F7/F8 - These keys change the direction of motion of the cue
ball. These are the coarse adjustment keys. For more
information see the discussion of the fine adjustment
keys F9 and F10 below.

F9/F10 - These keys, along with F7 and F8, control the direction
of motion of the cue ball. The direction is given by a
line drawn from the center of the cue ball to the edge
of the table (press F9 or F10 to see the line). If the
line is drawn to the top or bottom edge of the table,
the point where the line meets the edge moves by one
pixel in a clockwise (F10) or counter-clockwise (F9)
direction each time the appropriate key is pressed (the
table is 570 pixels long, so on a 100 inch table this is
equivalent to a distance of approximately 1/6 of an
inch). If the line is drawn to one of the side edges of
the table, the point where the line meets the edge moves
by 1/2 pixel each time the F9 or F10 key is pressed. The
F7 and F8 keys move the point of contact in increments
20 times as large as those produced by the F9 and F10
keys. Sometimes you will notice that pressing the F9
and F10 keys has no effect on the line drawn on the
screen. But the path of the cue ball has never-the-less
been changed (you can verify this by using F2 to compare
the effects of the two shots). This happens because the
resolution of the screen is not fine enough to display
the difference between these two paths. You must take
this limitation into account in your play.

ALT-F1 - Pressing the ALT key along with F1 toggles the rules of
play between "Straight Billiards", "One Cushion
Billiards", "Two Cushion Billiards", "Straight Pool",
"One Cushion Pool", and "Two Cushion Pool". The rules
of these games are given below.

ALT-F2 - Pressing the ALT key along with F2 toggles the "learn
mode" on and off. In the learn mode, motion is stopped
at the instant of contact between two balls (see the
discussion of collisions below). To restart the motion
press the letter 'c'.

ALT-F3 - Pressing the ALT key with F3 toggles the sound on and
off.

ALT-F9 - Pressing the ALT key with F9 ends the game. You will be
asked if you are sure you want to quit before you are
returned to DOS.

ALT-F10 - Pressing the ALT key with F10 restarts the program for
a new game. All scores are set to zero and the balls
are reset on the table.

Return - Pressing the Return key (labeled 'Enter' on some
keyboards) begins the shot.

THE RULES

The game is designed for two players "white" and "black".
White's cue ball is an open circle, black's has a small dot in
the center. White shoots first. The computer places the two cue
balls at random positions on the table at the beginning of each
game (when you start the game from DOS or when you press
ALT-F10). The other three balls are placed at equal intervals
along the mid line of the table. The players must decide between
themselves who will play "white" and at what score the game will
end. The play will appear most realistic if you can set the
vertical or horizontal size of your screen so that the horizontal
inside dimension of the table is twice that of the vertical
inside dimension.

The computer automatically keeps score for one of six games,
"Straight Billiards", "One Cushion Billiards", "Two Cushion
Billiards", "Straight Pool", "One Cushion Pool" or "Two Cushion
Pool" (chosen using ALT-F1). The game chosen is indicated on the
top left of the screen.

In "Straight Billiards" you must shoot the cue ball in such
a way that it collides with two of the other balls on the table.
Any of the balls will do, including your opponent's cue ball. You
may hit the balls directly or after bouncing the cue ball off
the sides of the table. If you succeed in hitting two balls, you
receive one point and can shoot again. If you fail, it is your
opponent's turn to shoot. The computer indicates the current
player and the score in the lower right corner of the screen. If
you are uncertain why you won or lost a point, you can replay the
shot by pressing F2, then Return (Enter).

The rules of "One Cushion Billiards" are identical to those
of "Straight Billiards" except that, in order to score a point,
you must hit at least one side (cushion) of the table with the
cue ball before hitting the second object ball. You may hit the
cushion either before or after you hit the first object ball.

The rules of "Two Cushion Billiards" are identical to those
above except that, in order to score a point and keep your turn,
you must hit at least two cushions with the cue ball before
hitting the second object ball.

"Straight Pool" combines aspects of both pool and billiards.
Here to score a point and keep your turn you must shoot the cue
ball so it hits an object ball, and this object ball must then
hit a second object ball.

As you might expect, the rules of "One Cushion Pool" and
"Two Cushion Pool" are identical to those of "Straight Pool"
except that you must hit the appropriate number of cushions
before the second object ball is struck. In these games only
collisions of the "active ball" with the cushions are counted;
the cue ball is the "active ball" until it hits an object ball,
then the object ball becomes the "active ball".

In all of these games a score of zero and loss of turn is
automatically given for a shot in which the cue ball or the
"active ball" hits the sides of the table more than three times
before colliding with two object balls. This is done to
discourage random unplanned shots.

Note that although the rules of the above games are based on
those of Carom Billiards and its variations, they have been
modified for this program. Before playing billiards on a real
table you should familiarize yourself with the rules as they are
set down in the establishment where you intend to play.

COLLISIONS

In order to play billiards and BILLIARD well, you must
understand the Physics of collisions. Billiard balls behave like
almost perfectly smooth and elastic spheres. The motion of such
objects when they collide is remarkably simple (considering the
possibilities). To predict the outcome of a collision of a cue
ball with a stationary object ball, first visualize the positions
of the balls at the instant they collide. Then imagine a line
drawn through the centers of the balls. After the collision, the
object ball will move away from the cue ball along this line.
Now imagine a line perpendicular to the first one and drawn
through the center of the cue ball (use a pencil and paper if
necessary). This second line gives the direction of motion of
the cue ball after the collision.

CUSHIONS AND ENGLISH

Normally when the cue ball hits a side (cushion) of the
table, it rebounds so that the angles made by the incoming and
outgoing paths of the cue ball with the side of the table are
equal (or equivalently, "the angle of incidence equals the angle
of reflection"). The direction of motion of the cue ball after
hitting the cushion can be changed by applying "english". A
billiard player applies english by striking the cue ball slightly
off center with the tip of the cue, making the cue ball spin as
it moves forward. When it strikes a cushion this spinning motion
imparts a sideways impulse to the cue ball changing its direction
of motion toward the left (left english) or right (right
english). When seen from above a ball with left english spins
clockwise and a ball with right english spins counterclockwise.
The easiest way to familiarize yourself with the effect of
english is to try it out (use the F5 and F6 keys to adjust the
english and shoot the cue ball directly into a cushion). English
can be used to make shots which would otherwise be impossible,
but it should be used sparingly because it is extremely difficult
to master and most shots can be made without it (or you can find
another shot which doesn't need it).

The following books can be found at libraries, book sellers
and billiard supply stores:

Byrne's Standard Book of Pool and Billiards, by Robert Byrne.

the Billiard Congress of America, 9 South Linn St., Iowa City,
Iowa 52240.

Byrne's book lists a number of others, but many of them are
difficult to find.

LICENCE

This program is distributed according to the shareware concept.
You are encouraged to copy and distribute it freely. If you do
so, please include this documentation file. If you use and enjoy
you would like to be sent a copy of the program on disk) to:

RJT Software
5572 Burnside Dr., Apt. #4
Rockville MD 20853
U.S.A.

Comments, questions and suggestions are also welcome at the above
address or at (301) 460-4451 (Jim Turner, voice).

The cost of marketing a new software product commercially is
beyond the reach of most independent authors. This keeps them
from developing their ideas and keeps others from using and
enjoying their programs. Shareware, or "user supported
software", provides a means for these individuals to distribute
their programs on "pay if you think its worth it" basis. By
supporting the shareware concept you encourage these authors to
continue to provide you with inexpensive high quality products.

Considerable care has been taken to ensure that BILLIARD.EXE is
correctly written, compatable with a variety of systems and
generally free of defects, however, it is provided AS IS without
warranty, either express or implied, including but not limited
to warranties of fitness for a particular purpose.

BILLIARD.EXE is protected by federal copyright law.