361 lines
20 KiB
Plaintext
361 lines
20 KiB
Plaintext
KC CHESS version 1.00.00 - by Craig Bruce and Kevin Phillips, 06-Apr-90.
|
||
|
||
If you don't know how to play chess, read a book!
|
||
------------------------------------------------------------------------------
|
||
MAIN MENU
|
||
|
||
When the game starts, the board, conversation area, and main menu are
|
||
displayed on the screen. To select the options from the main menu, simply
|
||
press the key indicated on the bottom of the screen. The following options
|
||
are available:
|
||
|
||
H = Help
|
||
Displays this help information on the screen. The PAGE_UP and PAGE_DOWN
|
||
keys allow you to view the separate pages of the help information.
|
||
RETURN or SPACE may be pressed instead of PAGE_DOWN. When finished
|
||
viewing, press the ESCAPE key to return to the main menu.
|
||
|
||
Q = Quit
|
||
Will exit the chess program and return to DOS. If you do not wish to
|
||
lose the game currently in memory, make sure you save it (File System)
|
||
before you choose this option.
|
||
|
||
RETURN = Play game
|
||
Places the game in PLAY MODE (see below). The players make their moves
|
||
until the end of the game or until the user presses ESCAPE to return to
|
||
the main menu. While in the main menu, the current game is merely
|
||
suspended, and using this option again will resume it from its
|
||
displayed position.
|
||
|
||
T = Take back move
|
||
This option is used if you make a regrettable move and wish to un-do
|
||
it. If the you are currently in PLAY MODE you must press ESCAPE to
|
||
return to the main menu to make this option accessible. You may take
|
||
back as many moves as you wish, all the way back to the opening move,
|
||
since they are all stored in memory. Each move taken back will be
|
||
displayed on the game board by the piece moving back to where it came
|
||
from and the conversation area information being updated as necessary.
|
||
|
||
U = Un take back move
|
||
If you take back more moves than you meant to, then the moves can be
|
||
made again by this option. All taken back moves are remembered until
|
||
a permanent move is made (in PLAY MODE). Takeback and Untakeback may
|
||
be used to review the last few moves of the game if you wish.
|
||
|
||
G = Goto move
|
||
This option will allow you to go directly to any move of the game.
|
||
The game board will clear and the computer will ask you for the move
|
||
number you wish to go to. See the User Input notes below for how to
|
||
edit your input. Entering a number that is larger than the last move
|
||
of the game will make the computer go to the last move of the game, and
|
||
entering a move number that is too small will go to the first move of the
|
||
game. Then, the computer will ask you which color's turn within the
|
||
move to go to. Enter B for Black or W for White. The game board
|
||
corresponding to the selected move will then be displayed and you will
|
||
be returned to the main menu.
|
||
|
||
W = Watch game
|
||
This option allows you to view the moves of the game without going
|
||
through them 'manually' with Takeback and Untakeback. All of the
|
||
recorded moves will be displayed from the current position in the game
|
||
to the end of the game. If you are currently at the end of the game,
|
||
the computer will go to the first move of the game and start showing the
|
||
moves from there. You will return to the main menu when the end of the
|
||
game is reached, or you may exit watch mode by pressing the ESCAPE key
|
||
at any time.
|
||
|
||
O = Options set
|
||
This option allows you to change some of the settings of the game. The
|
||
game board will clear and you will be asked for the "Flash Count". The
|
||
default value is two. This gives the number of times that a piece
|
||
should be flashed on the screen to indicate that it is being moved.
|
||
Changing this value to zero will make it so the piece is not flashed
|
||
at all. See the User Input section for information on how to input
|
||
or change the value. Press RETURN to set the Flash Count.
|
||
|
||
Next you will be asked if you want "Sound". Answer Y for Yes or N for
|
||
No. The default is Yes. The only sound in the game is a beep when the
|
||
computer is finished selecting its move in Play Mode or a buzz in some
|
||
places when you do something wrong.
|
||
|
||
Next you will be asked if you want to allow the "En Passent" priviledge
|
||
in the game. The default value is Yes. Although it is rarely used,
|
||
you may wish to set it to No if you don't know what it is and you don't
|
||
want the computer to do it to you.
|
||
|
||
Next you will be asked for the "Watch Delay" in milliseconds. This is
|
||
the time that the computer will delay between showing moves in Watch
|
||
Mode. The default value is 700 milliseconds (0.7 seconds). The minimum
|
||
and maximum allowed values are 0 and 30000. Do not enter any commas
|
||
in the number. If the number entered is improper, the default value of
|
||
700 will be used.
|
||
|
||
Finally, you will be asked for the "Time Limit" for the game. If either
|
||
player's elapsed time (shown in the player info blocks in the conversation
|
||
area) meets or exceeds the time limit, then that player loses and the
|
||
game is over. The default value is 00:00:00 (in HH:MM:SS format), which
|
||
means that there is no time limit. Changing this value will cause the
|
||
time limit to be enforced. The value entered must be in the exact format
|
||
of HH:MM:SS or the default value will be used. After entering this value,
|
||
the chess board will be displayed and the main menu will be re-entered.
|
||
|
||
P = Player info
|
||
This option allows you to change the various attributes of each player.
|
||
The game board will clear and you will be asked for the white player's
|
||
Name. Enter the name you wish to use and press RETURN. You may use
|
||
BACKSPACE to eliminate any unwanted characters.
|
||
|
||
Next you will be asked for the white player's Elapsed Time. Enter this
|
||
value in the format "HH:MM:SS" or the program will use the value 00:00:00.
|
||
In play mode, the move time will be added to this time. The move Takeback
|
||
and Untakeback options do not update or un-update the elapsed time (you
|
||
can't roll back the hands of time), so if you wish to take back moves and
|
||
resume play from some lower elapsed time, you must enter the new elapsed
|
||
time value here.
|
||
|
||
Next you will be asked for the player type of the white player. You may
|
||
enter H for Human or M for Machine. Use BACKSPACE to delete the current
|
||
setting. If you enter an invalid character, the default of Machine will
|
||
be used. You may enter either Human or Machine for either player (white
|
||
or black), allowing four combinations. Human vs. Human would be like
|
||
playing on a real board and Machine vs. Machine would be a demonstration
|
||
of the program.
|
||
|
||
Next you will be asked for the "Lookahead". For a Machine player this
|
||
gives the number of half-moves (plys) to look ahead of the current
|
||
board position in figuring out the best move to make, and for a Human
|
||
player this gives the number of plys to look ahead if the human asks for
|
||
a hint. To change the setting, press BACKSPACE to delete the current
|
||
value and enter the new value. Zero to three ply lookaheads will not
|
||
require much time, but four and higher lookaheads can require a
|
||
considerable lookahead time. The following table gives the ranges of the
|
||
move consideration times with Position Evaluation (below) on and off for
|
||
a 10 MHz PS/2 Model 30/286, in the format MM:SS. The true move time will
|
||
be different on different computers and will vary with the complexity of
|
||
the board configuration.
|
||
|
||
POSITION EVALUATION OFF POSITION EVALUATION ON
|
||
PLYS Low Average High Low Average High
|
||
0 0:00 0:00 0:00 0:00 0:00 0:01
|
||
1 0:00 0:00 0:01 0:00 0:01 0:02
|
||
2 0:00 0:01 0:01 0:01 0:03 0:05
|
||
3 0:01 0:07 0:13 0:05 0:15 0:45
|
||
4 0:06 0:45 2:55 0:19 1:20 4:25
|
||
5 around 8 minutes
|
||
6 around 20 minutes
|
||
|
||
Next you will be asked if "Position Evaluation" should be used in the
|
||
consideration of moves when the computer is looking for the best move.
|
||
This consideration is used to break 'ties' for best material score by
|
||
examining the formation of pieces, etc. and following a number of special
|
||
rules. (Please note that the rules followed and the positional score
|
||
generated are not very sound or scientific, and were designed by a definite
|
||
chess non-expert). The drawback to enabling option is that it may take
|
||
significantly more time for the computer to select a move (for technical
|
||
reasons). The default is to enable position evaluation, and this is
|
||
reflected in the conversation area by showing a "+" on the end of the
|
||
Machine Skill Level.
|
||
|
||
Then, all of these same questions will be asked for the black player, and
|
||
after that, you will return to the main menu.
|
||
|
||
N = New game
|
||
This option will set the pieces on the board to the startup formation of a
|
||
new game, update the move number and player status settings appropriately,
|
||
and will enter Play Move as if you had pressed RETURN.
|
||
|
||
S = Setup board
|
||
Allows you to set up the pieces on the board how you wish. See the SETUP
|
||
MODE section below for more information.
|
||
|
||
F = File system
|
||
Causes you to enter the file system. See the FILE SYSTEM section below.
|
||
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
PLAY MODE
|
||
|
||
Accepts moves from the players, makes them, and continues until the game is
|
||
finished or the user presses ESCAPE to return to the main menu. The color and
|
||
name of the player whose move it is are displayed at the bottom of the screen
|
||
and the elapsed time of the player to move will tick away.
|
||
|
||
Human Player:
|
||
|
||
If the player to move is Human, then the cursor (green) will blink on the
|
||
game board and the computer will wait for the you to move the cursor, pick up
|
||
the piece that you want to move, and put it where you want to move it. To
|
||
move the cursor, use the cursor keys. The HOME, END, PAGE_UP, and PAGE_DOWN
|
||
keys are also active in moving the cursor. The will 'wrap-around' to the other
|
||
side of the board if you move it 'off' an edge. Move the cursor on top of the
|
||
piece you wish to move and then press RETURN or SPACE to pick it up. The
|
||
square will be displayed in the lower section of the conversation area.
|
||
|
||
Then move the cursor to the position where you wish to move the piece and press
|
||
RETURN or SPACE. The full code for the move will be displayed in the
|
||
conversation area, and the computer will check if the move is valid. If it is
|
||
not, the computer will buzz and display "Invalid Move", and you will be put
|
||
back to the pick-up phase of selecting the move. If it is not obvious why the
|
||
move you attempted is invalid, see if moving the piece would result in you
|
||
being in check. (Please note that it is illegal to castle while in check and
|
||
it is illegal to castle "through" check). If you pick up a piece that you
|
||
decide you really do not want to move, press BACKSPACE to put it back down.
|
||
|
||
In the event that the move you made was a pawn promotion, after displaying
|
||
the move, the computer will ask you which piece you wish to promote the pawn
|
||
to. You may press Q = Queen, R = Rook, B = Bishop, or N = kNight. The piece
|
||
will then be promoted.
|
||
|
||
The following keys may also be used when you are entering your move:
|
||
|
||
H = ask for Hint
|
||
Will ask the computer to suggest a move for you to make. This move will be
|
||
generated using the skill level and position evaluation setting for the
|
||
human player. The computer will display "Thinking" and will show the
|
||
suggested move a short (or long) time later. You may enter this suggestion
|
||
as above, or you may use your own choice of move.
|
||
|
||
A = Attack/protect count
|
||
Will display the number of times the cursor square is attacked (threatened)
|
||
by enemy pieces and protected by friendly pieces. This is provided to
|
||
let you make sure you are not failing to notice that a square is attacked
|
||
or protected.
|
||
|
||
C = Check move list
|
||
Will display the list of all of your possible moves on the screen. Press
|
||
any key after you are finished viewing the list to return to entering your
|
||
move.
|
||
|
||
Machine Player:
|
||
|
||
If the player to move is Machine, the computer will think about its move for
|
||
a period of time and will finally make the move. While it's thinking, it will
|
||
display the 'best' move it has found so far and that move's Score, EnemyScore,
|
||
and Positional Score. The EnemyScore is the highest score that the computer
|
||
thinks its enemy can achieve after the computer makes the move that it is
|
||
currently showing as best. For skill levels of three and above, the computer
|
||
will also display a Scan countdown (the number of moves left to analyze) and
|
||
will begin its analysis with a 'PreScan'. The written report for this project
|
||
goes into detail on exactly how the computer 'thinks'.
|
||
|
||
If you get tired of waiting for the computer to think of its move, you may
|
||
press the M key to force the computer to make the best move it has found so
|
||
far. This key (and the ESCAPE key) is checked only when the scan count is
|
||
updated, so it may take a little time for the computer to react to your
|
||
pressing the key. BE PATIENT. If the computer is taking too long to think,
|
||
you may wish to use the Player Info option in the main menu to lower the
|
||
lookahead for the Machine player.
|
||
|
||
-------------------------------------------------------------------------------
|
||
SETUP MODE
|
||
|
||
This mode allows you to set the pieces on the board as you wish. The only
|
||
restrictions are that there must be exactly one king on the board for each
|
||
player and they cannot both be in check, and a pawn cannot be placed on row one
|
||
or row eight. Move the cursor around the board with the cursor keys to a
|
||
square that you wish to modify. Then use one of the following keys to place
|
||
the piece: K = King, Q = Queen, R = Rook, B = Bishop, N = kNight, P = Pawn, and
|
||
SPACE = <no piece>. If you type SPACE, whatever was under the cursor will
|
||
disappear; otherwise, if you typed one of the other keys, the cursor will
|
||
disappear and you will be asked for the color of the piece you wish to add.
|
||
Type B for Black or W for White.
|
||
|
||
If you are placing a king or a rook it its 'home' position, the computer will
|
||
ask you if the piece has moved from its starting position since the start of
|
||
the game. This is necessary for the computer to know if castling is still
|
||
possible. This question will not be asked for other pieces. Now, the new
|
||
piece will be displayed on the board under the cursor. You may move the cursor
|
||
to the next place you wish to put the next piece.
|
||
|
||
If you wish to clear the entire board to start from scratch, press the C key.
|
||
If you wish to set pieces on the board to their startup positions, press the D
|
||
key (Default).
|
||
|
||
When you are finished modifying the board, press RETURN to accept the setup.
|
||
You will then be asked for the current move number and then the player who is
|
||
to move next. Enter these values and use BACKSPACE to delete the current
|
||
value. After this, you will be returned to the main menu. Note that all of
|
||
the previous moves of the current game (if there are any) will be lost, and the
|
||
setup you have input will be considered as the opening board configuration.
|
||
|
||
If you entered setup mode accidentally or you are not satisfied with the setup
|
||
you have created, you may press ESCAPE to exit back to the main menu and
|
||
restore the board configuration that was present before you entered Setup mode.
|
||
|
||
-------------------------------------------------------------------------------
|
||
FILE SYSTEM
|
||
|
||
The file system allows you to Load, Save, or Print out the current game, or
|
||
obtain a listing of all of the chess games in the current directory. The
|
||
options are selected with the following keys:
|
||
|
||
ESC = return to main menu
|
||
|
||
L = Load game
|
||
The chess board will clear and you will be asked for the name of the game
|
||
(file) to load into memory. Press RETURN to use the default filename or
|
||
use BACKSPACE and then type in another name. Note that although all games
|
||
are saved with a ".CHS" extension, you do not have to type this. After you
|
||
have entered the filename, the game will load and the final board position
|
||
will be displayed, or the message "I/O Error" will be displayed if
|
||
something went wrong. Press a key for the latter case.
|
||
|
||
S = Save current game
|
||
The chess board will clear and you will be asked for the name to save the
|
||
current game under. Press RETURN to use the default filename or use
|
||
BACKSPACE and then type in another name. Although chess games are saved
|
||
with a ".CHS" extension, you do not have to type this. The game will then
|
||
be saved and you will return to the file menu. If anything went wrong,
|
||
"I/O Error" will be displayed; press a key to continue.
|
||
|
||
P = Print out current game
|
||
You will be asked for the filename to print the output for the game to.
|
||
The default of "PRN" (the DOS standard printer) will be shown. You may
|
||
change this filename if you wish (to print to a disk file). The listing
|
||
will then be printed, and "I/O Error" will be displayed if something went
|
||
wrong. The listing will show all of the moves of the game and a
|
||
representation of the final board setup.
|
||
|
||
D = show Directory listing of chess games
|
||
The screen will clear and the directory will be displayed. Press RETURN
|
||
after viewing the listing to return to the File Menu. Note that this
|
||
option calls the DOS program "COMMAND.COM" and it must be found either in
|
||
the current directory or in some directory in the PATH environmental
|
||
variable. Also, the COMMAND.COM found MUST be for the same version of DOS
|
||
that the system was booted up under, or an error may be displayed or the
|
||
system may simply crash. MAKE SURE that the chess program is installed to
|
||
use a good COMMAND.COM or do not use this option.
|
||
|
||
-------------------------------------------------------------------------------
|
||
USER INPUT MODE
|
||
|
||
The design objective of the User Input subroutine was simplicity of
|
||
implementation, and thus, it is fairly limited. When you are put into User
|
||
Input mode by Player Info, set Options, Filename, or other places in the
|
||
program, the only editing key that you may use is BACKSPACE (like DOS input).
|
||
This key will delete the last character of the input string and move the cursor
|
||
back one position. Usually when input mode is entered, a default string is
|
||
provided. If you wish to change the default or enter something entirely
|
||
different, you will have to BACKSPACE out what you don't want before you type
|
||
in what you do want.
|
||
|
||
To type in new characters, simply type the key. Only the letter keys, number
|
||
keys, and a few punctuation keys are accepted. The new character will be
|
||
displayed and the cursor will move one space to the right. If this does not
|
||
happen, then you have reached the limit of the number of characters you are
|
||
allowed to input. You may still use BACKSPACE if you wish.
|
||
|
||
When you are finished entering the string (or you have not made any changes to
|
||
the default string and you wish to use it), press RETURN. This will end the
|
||
User Input Mode and the string you have entered will be given to the computer
|
||
and processed.
|
||
|
||
-------------------------------------------------------------------------------
|
||
FINAL NOTE
|
||
|
||
To the best of our knowledge, this program is completely free of bugs; however,
|
||
of course, it is impossible to guarantee this. If you find any errors in this
|
||
program, we would like to know about them. Thank you much.
|
||
|
||
- Craig Bruce & Kevin Phillips, 06-Apr-90. |