home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Complete Encyclopedia of Games 3
/
GAMES1000V3_d2.iso
/
sports
/
2503
/
2503.doc
next >
Wrap
Text File
|
1995-05-26
|
11KB
|
318 lines
This is the documentation file of the billiards game ANOTHER POOL (V 0.98).
[ copyright (c) by Gerrit Jahn, (email: ub1g@rz.uni.karlsruhe.de) ]
-------------------------------------------------------------------------
Contents:
1. General Informations
2.
2.1 The Keys
2.2 Command Line Options
2.3 The File "Const.dat"
3. Rules
4.
4.1 Known Bugs
4.2 Next Versions
4.3 Changes
--------------------------------------------------------------------------
1. General Informations
First thing: sorry for my english.... ;-)
"Another Pool" simulates a pool game like 8-Ball with 16 Balls,
(white, black, 7 striped, 7 filled balls (here: red and yellow)).
The (original) rules have been slightly modified to be easier
implemented (you will see it, if you play...).
Another Pool is written with GNU-C 2.57 and uses cbgrx 2.0.
Depending on this there will be some "mistakes" in the program,
(see 3.)
Another pool simulates billiards as realistic as possible (for me :-).
So you can play "english" (with spin), play curve-balls and the
balls will begin to "roll", "after" they slided a while (so they won't
stop after colliding with other balls but roll, as you would expect
from an "unrealistic" full-elastic collision).
If you want to start the game, the files konst.dat and table.dat
must be in the same directory as apool.exe. go32.exe must be in
this directory or path-environment. The .fnt files should be also
in the game-directory.
!!! If the game won't start correctly, look at the file "VIDEO.BAT"
for further details on installing the video-driver correctly.
If the file "table.dat" is missing, enter "billard -init 32",
to build it (s. 2.2).
By the way: it would be useful to own a 486DX or more. The
program won't work without fpu [and it's no good idea to use the
387-emulator :-( ]. So 386 without 387 or 486SX-user
can't play Another Pool (sorry!).
-------------------------------------------------------------------------
2.
2.1 The Keys
During the game the following keys will cause an action:
c: computer plays for actual player
(until you press any key if the computer plays or
"c" again if you are playing (not the computer).
x: computer plays only one shot for actual player
d: start computer-demo
(in demo-mode: press any key to stop demo)
w: white ball rolls to mouse-cursor (test-procedure)
W: another computer-help (also a test-procedure)
doesn't work correctly.
u: undo last shot (no redo implemented!)
r: "slow motion"-mode on/off
s: show statistics
F1: help
F2: credits
ENTER or SPACE: same as left mouse button
n: new game
ESC: "fast" quit game (works in allmost every situation)
q: show statistics before quitting the game
if you're asked to press "any key" during the game, press a n y
key e x c e p t "ESC" !!! (ESC quits)
Most keys work only when the game is waiting for you. Some
special keys like ESC work during the game, too.
2.2 Command Line Options
!!!
If the game will flicker too much or the balls won't slide softly
you can try to change the values of steps and time_step.
You also might do this, if the game is too fast...
!!!
"apool 16"
starts billard in standard vga mode (640*480-16). May work,
even if you don't have a vesa-compatible graphics-card. (May
even not! ;)
"apool"
enables 640*480 256 Mode. Needs a vesa-driver (see video.bat)
or a vesa compatible graphics card. Is (lots of) faster then
standard vga.
"apool -init x"
creates the 'geometry' of table new. "x" is the width of the
holes (25 < x < 45). -init x creates the file "table.dat" new.
x = 32 is the default.
2.3 The File "konst.dat"
This file contains all the "physical" constants the game needs.
you can easily change them and see what happens...
konst.dat has the following structure:
0.0000001 alpha transformation gliding <---> rolling (-> spin)
0.000000008 beta friction that decreases z-spin
0.2 gamma decrease of Spin when ball hits a side
0.000000025 delta rolling- / gliding-friction
0.75 eta 1-loss of spin by transf. from spin -> speed
0.4 bandes "strength" of z-spin at the sides
0.9 banderef decrease of speed when hitting a side
1.0 mass_white mass of the white ball (others: 1.0)
50 step painting new after 'step' calculations steps
6 clev "level" of computer-op., (deepness of combies)
3.75 curves how strong "breaks" ball (par.) out, (p.c.-b.)
7.5 curvep h.s.b.b. (perpend.) out, (playing curve-balls)
30000 time_step t.-freq.= 18.2 t/s * 65536 / (65536-time_step)
description:
-alpha: if you kick a ball it won't roll first but glide/slide.
alpha describes how fast the transformation from gliding/
sliding to rolling will be.
-beta: if you don't hit the ball in the center it gets spin.
beta is the factor, how fast the spin around the z-axis
decreases. (a kind of friction, don't know the english name,
in german you say "Bohr-Reibung", means drill-friction)
-gamma describes the loss of the z-spin, when a ball hits a side
-delta: "rolling- /gliding-friction"; describes, how fast the
velocity of the balls decreases.
-eta: describes the loss of energie by transforming rotation (spin)
to velocity.
-bandes: Describes the influence of the z-spin at the cushions.
-banderef: the loss of speed, if a ball was reflected by a
cushion.
-mass_white: the mass of the white ball (the other balls have the
mass 1).
-step: describes how often the program paints all the balls new.
50 means that the program paints after 50 calculation-
steps. If you have a computer faster than a 486DX2-66,
you will have to decrease the value of step.
(P5-100 : 15-25).
-clev: describes how "deep" the computer-opponent thinks. 2 means
that the computer will play combinations with 3 balls, ...
change clev to 0 and look at the result.
-curve(s/p): if you (in the game) press the middle button and then
the right button, you can change the angle between the table
and the queu. If you now change (with only the right button)
the hit-point on the white-ball, you can play curve-balls.
curve(s/p) describes, how strong the ball breaks out.
(curves: perpnedicular, curvep: parallel)
-time_step: the "frequency" of the timer (s. timer). you get
the "real" frequency by calculating
f = 18.2 / s * 65536 / (65536 - time_step).
-----------------------------------------------------------------------------
3. Rules
- Kick off, Place Cue-Ball:
In the beginning of the game you or your opponent have to kick off:
The player who begins can place the cue-ball anywhere in the left
quarter of the table (same procedure if the white ball disappears).
After this, you can set power and spin with the right/middle mouse
button and shoot with the left button.
- Choose Color:
In a new game, you can hit any balls except of the black one.
If you pocket a ball correctly (without fouls), you 'choose' the
color of this ball.
You have to play this color until the ende of the game.
If no color is chosen and you sink balls with different colors,
you can play again (and choose again if you hit a colored ball).
If no color is chosen and you pocket a colored ball and make a
foul at the same shot your opponent plays the next shot (and
can 'choose', if he pockets a ball).
- Black Ball
If you sink all 'your' balls, you have to play the black one
(without any foul!) in a hole to win the game.
If you shoot the black one in a hole by making a foul, you lost
the game.
If you play the black too "early" in a hole, you lost the game,
too.
- Freeball, Fouls
If your Opponent makes a foul, you have a `freeball'. That means,
you can hit ANY ball first (including the black one) and shoot
ANY ball in a hole (excluding the black one).
If you don't make a foul and don't pocket a ball (after your
opponent has made a foul), you will have an 'extra-shot', a
second chance, the punishment for the foul of your opponent.
- The following actions are fouls:
-- pocketing the white ball.
-- hitting first another ball than one of 'yours'. (e.f.)
-- pocketing wrong colors balls (e.f.)
-- the white ball doesn't hit another ball.
-- no ball hits a cushion or falls in a pocket.
(e.f.) means: except you have a freeball
- The Loser kicks off the new game...
( maybe implemented in one of the next versions:
- Fouls: if a player kicks off and less than 4 ball hit the cushions
and no ball rolls in the pocket.
- Rule: the black ball has to be pocketed in opposite to the
position of the last pocketed ball of the players color. )
-----------------------------------------------------------------------------
4.
4.1 Known bugs:
- the balls will flicker if any ball is rolling.
4.2 Next Versions:
0.99 - 1.0: - if cbgrx2.0 is out, there will be a double page-mode
implemented, so the balls won't flicker anymore.
- english comments in the source code and .dat-files.
- better menus, if I have time enough.
- more and 'better' rules will be implemented.
- computer-opponent will use the cushion and make tests, if
it will make a foul...
- The (z)-spin, a ball gets by hitting a cushion will be
implemented.
- ...
4.3 Changes since version 0.97
In V 0.975:
- The handling of spin (english?) works now "physically" correct.
Depending on this the roll-after-collision of a ball works better.
- Some "fine-work" on the geometry.
In V 0.98:
- Timer-dependent painting, the game will NOT increase speed anymore
if some balls are pocketed.
- Some bugs "at" the sides.
- If wanted, a "special-s3-version" (faster, "smoother" graphics)
can be compiled. (with -DS3 at gcc ... -c graphics.c -DS3)
If anybody is interested in this, he/she may mail me...
------------------------------------------------------------------------------
If you have any suggestions or problems with Another Pool (-V 0.98)
email to "ub1g@rz.uni-karlsruhe.de".
You will find the newest version of the program at:
ftp.heidelberg.de (/incoming/apool.zip)
ftp.cdrom.com (/pub/incoming/games/billiards/apool.zip???)
ftp.wuarchive.wustl.edu (/pub/msdos_uploads/billiards/apool.zip)
Have fun ;-)
Gerrit