Release: Screamer 1.0, build 48
Date: 01/2000
Introduction
Screamer is a Macintosh based chess engine and interface
(PPC and 68k) developed over several
years as a hobby. It is continually under development
and new versions should appear
intermittently. It is released as freeware but is copyrighted
with all rights reserved. Please
feel free to contact me for questions or concerns.
William
wbryant@ix.netcom.com
Overview
Features
Screamer Chess Engine
Macintosh Chess Interface
Commands and Menu Options
Chess Board Window
Screen and File Logs
Test Positions (FEN/EPD) and Test Suite Files
System Requirements
Known Limitations and Bugs
Future Directions
Contact Information, Credits, and Resources
Legal Stuff
Features
*Fully functional chess engine that plays legal
chess including castling, en-passant, and
recognized standard draw positions including
draw by 3 fold repetition, draw by
insufficient material, draw by 50 move
rule.
*Unlimited move take back.
This is ability to take back all moves
up to the initial move made by a player or the
computers.
*Variable hash table support from 512kb to 40Mb.
*Intuitive Click and Drag -or- Point and Click
piece movement.
*Fully scriptable interface and support for AppleEvents.
*Exachess 2.x and Exachess Lite 2.x chess database
compatibility.
Simply place Screamer or an alias to Screamer
in the Exachess:Tools:Engines folder
and select Screamer in the engines dialog.
(See Exachess in Resources section)
Screamer Engine v.1.00, build 48
The engine is written in ANSI C++ with no (or
very limited) use of Macintosh specific functions.
All interactions with MacOS is via a standard
interface below.
*Negamax version of alpha, beta search
*PVS with aspiration windows
*Recursive Null Move
*Variable size hash table support
*Limited pawn hash table support
Current Test Suite Scores (1/10/2000, Macintosh
G3/266mhz):
WAC 290/300 at 1 minute
Score Score(USCF)
CCR Test Suite 18/25 2330 2510
LCT II 20/30 2360 2540
BT2630 21/30 2325 2505
Average Score: 2338 2518
Macintosh Chess Interface
The interface was created using Metrowerks Codewarrior
and Powerplant. Through the use of a
standard set of functions and call back routines,
all Mac specific functionality has been
isolated in the interface. This should allow
the interface to be compiled with other C,
C++ chess engines that support its protocol.
The interface provides support for standard MacOS
interface elements, AppleEvents, and is
fully scriptable. It does not (yet) support navigation
services or printing but these are on
the list of things to do.
Commands and Menu Options
Apple Menu
About...
The about box for Screamer with basic overview,
credits, and contact information.
File Menu
New
Resets the game window to a new game, flushes
the hash table, and resets the move list.
It also set the computer to off. This command
is not undoable.
Run Test File
This opens a file called "EPD Test
File" and runs the resulting positions sequentially,
placing the analysis in the log file and
(if open) the screen log. The test file must be
in the same folder as Screamer.
See the section ' Test Positions (FEN/EPD)
and Test Suite Files' for a description of
the file format used for creating your own
test files.
I plan to add navigation services support
and a standard dialog in the future, to make
selecting test files easier. (See Future
Directions). For now, rename your test file
"EPD Test File". A sample file
has been provided.
Quit
This exits Screamer.
Note: Screamer will not exit until the
current search is complete. To halt the search
early Type <command-period> while
the game window is selected or select <Stop Search>
from the Game menu.
Edit Menu
The standard edit menu options work as expected
in all text windows and dialogs.
When the game window is selected and active,
the edit menu commands have the following
effects:
Copy <command-c>
copies the current board position in the
form of an EPD string into the clipboard.
Paste <command-v>
Calls up the 'Set EPD/FEN dialog'. Selecting
Paste again (typing <command-v> again)
will place a EPD/FEN string into the dialog
box were it can be used to set up the current
board position.
Note: There is a memory fault when pasting
the position directly into the board from the
clipboard without going through the dialog
box. I am working on this. Sorry for the
additional step at this time. Wm.
Undo <command-z>
This takes back the last move and sets the
computer side to off. To have the computer
resume playing select 'Go' from the game
menu, or type <command-g>.
Game Menu
Go (Computer to Move ...) <command-g>
This sets the computer to search the current
position and to play subsequent moves
for which ever side is on move at the time
go is selected.
Computer Off
This set the computer to off and it will
not move for either side until reset.
Note: Taking back a move automatically
sets the computer to the off position.
List Moves
This outputs a complete list of the moves
of the current game to the log file/files.
It also prints a text representation of
the current board position.
Clear Hash Table
This manually clears all the entries in
the hash table by setting the entries to invalid
and removes any bestmove data.
Get Position
This command places an EPD string describing
the current position into the log file and
screen log when open. To place the EPD
string into the clipboard simply highlight it
from the log and select copy. A shortcut
is to simply select the board window
and select copy which will automatically
place the EPD string into the clipboard.
(select the game window and type <command-c>).
Set Position
This command brings up a copy of the current
board in the Set Position dialog for editing.
The board can be cleared or set to a new
game with the appropriate buttons at the bottom
of the dialog. Select the piece buttons
and arrange the board as desired. To set the
ep square, select the ep button and click
on the square desired.
The default is no castling rights, no ep
square, and white to move. These can also be
set in the dialog.
Note: if the resulting position is illegal,
Screamer will beep and display a message in
the screen log explaining why the position
is illegal. In that case, the board remains
unchanged.
Set EPD/FEN position
This command brings up a simple dialog window
with an editable text box to allow a position
in EPD notation to be typed or pasted into
the window.
There are several shortcuts:
When the game window is active, selecting
'Paste' from the edit menu (or typing)
<command-v> will bring up the dialog
window.
When the dialog is displayed typing <command-v>
again will paste an EPD string
from the clipboard into the text dialog.
Enter or Return can be used to trigger the
default 'Set Pos' button.
Escape can be used to trigger the 'Cancel'
button.
Note: if the resulting position is illegal,
Screamer will beep and display a message in
the screen log explaining why the position
is illegal. In that case, the board
remains unchanged. A carriage return as
the leading character of a pasted EPD string will
cause Screamer to consider the string invalid.
Search Menu
This menu is designed for you to select
the depth or time for the computer to search each position.
An option to search for mate will be added
in the future, but is disabled at present.
Depth Search
This allows you specify how deep you want
to computer to search in plies. (a ply is
a half-move). The computer will search
to this depth regardless of the time required.
The search can be stopped by typing <command-.>
with the game window active or by selecting
'Stop Search' in the Game menu.
Time Search
This allows you to specify how long you
want the computer to search.
The computer will search until this amount
of time has expired, and report the last
completed ply and its principal variation.
You can set the time to MaxTime
(approximately 24 hours).
The search can be stopped by typing <command-.>
with the game window active or by selecting
'Stop Search' in the Game menu.
Mate
This searches the current position looking
for checkmate in the specified depth.
IT IS NOT YET IMPLEMENTED.
Options Menu
Output Logs
Log to Screen
Log to File
This enables / disables search output
and player moves to the respective log files.
By default, the log file is opened
at startup and closes at exit. Turning off the log
to file does not close the log,
just suspends output until enabled or exit.
Piece Movement
Point & Click
Click & Drag
This lets you toggle between click_and_drag
and point_and_click piece movement.
Click_and_drag is the default.
Changes are not saved upon exit.
Piece Sets
This lets you toggle between the default
set of pieces that I created, and Richard Fowell's
American set of pieces. Changes are not
saved upon exit.
Enable Audible Move Alarm/Disable Audible Move Alarm
This option, when enabled, sends a brief system beep when the computer makes a move.
Chess Board Window
The main chess board window consists of the chess
board and pieces, engine messages, side to
move information, and search information.
The pieces on the board itself are movable when
the engine in not searching by either
clicking on a piece and dragging it to a
new square, or by clicking on a piece and then
clicking on a square. Dragging is the default.
Piece movement can be changed in the Options
menu. Only pieces for the side on move
can be selected and moved. Attempting to move a piece
of the wrong color results in a warning
beep from the interface.
Above the board on the right and left corners
are the words 'White' and 'Black'. The side to
move is indicated by a black box around
it. The computer side is indicated by a small black
dot to the right of the side that the computer
is playing.
The message window sits in the middle above the
board, and usually echo's the move number
and side to move. 'Move 1 B' indicates
that it is the first move, black is on move.
Other messages from the chess engine, include
checkmate and stalemate notification and illegal
move notification, are displayed here as
well.
The right half of the window is the search information,
which is blank until the engine searches
a position.
The top half displays search statistics
while the bottom half shows the current
principal variation up to 32 ply (16
full moves).
PV Move is the move that is currently considered
the best move, and is the move to be played
if the search ended immediately.
Score is the current evaluation score of
the PV move in centipawns (1/100 of a pawn).
Depth is the current depth of the search.
It has 3 components:
1. Ply Depth (a ply is the half-move
count)
2. Root move number (the current root move
being considered)
3. Root move notation (the short algebraic
notation for the move being considered)
This move may or may not end up
being the best move and may or may not end up in the
PV
move window.
For example: 21/0 KB1 means the
search is on the 21st ply, searching the initial root
move which is Knight to f3.
Note: the root moves start at
0, not at 1.
Nodes is the current number of total nodes
searched.
NPS is nodes per second, or the current
speed of the search. This number will vary from machine
to machine. At present, I get approximately
50,000 nps on opening and middle game positions,
rising to 110,000 nps on end game
positions on my G3/266mhz machine.
Screen and File Logs
Screamer maintains two log files that provide
a running summary of the game and the current search.
The log file is found in the same directory as
the Screamer application itself. Log files are
numbered sequentially and have a black pawn
as their icon. These are text files and can be
viewed with any text editor or word processor
(including Simple Text).
The screen log is identical to the log file but
appears just below the game window. It is
movable and resizable and can be placed
where you wish. Screamer will not, at present,
remember any changes to this window and
it will again be placed in the startup position when
the program is relaunched. This is an editable
text window and analysis and EPD position
strings can be selected and copied to the
clipboard and other applications. Any information
pasted into this window will not affect
the Screamer engine. This window is not saved on exit
(the information is available in the log
file.)
The default is for the log file to be active,
and the screen log to be inactive.
These can be changed in the Options menu.
A check mark beside each file name says that this
file is
active. Screamer does not currently remember
changes to the defaults when the program is
relaunched.
Test Positions (FEN/EPD) and Test Suite Files
To set up the board and enter a test position,
select 'Set Position' from the Game menu to bring
up the Set Position dialog. The Set Position
board is initially set to the current game board.
It can be cleared or set to a new game with
the appropriate buttons at the bottom of the dialog.
Select the piece buttons and arrange the
board as desired. The default is no castling rights,
no ep square, and white to move. These
can also be set in the dialog. To set the ep square,
select the ep button and click on the square
desired.
Note: if the resulting position is illegal, Screamer
will beep and display a message in the
screen log explaining why the position is
illegal. In that case, the board remains unchanged.
To extract an EPD string from the current board
position, make sure the board window is the
active window, and type <command-c>
(the standard copy command). This will place a EPD
string
describing the current board position into
the clip board where it can be pasted into any program
that can access the clipboard.
To set the board to an EPD string , copy the string
into the clipboard from any source and then
select the game window to make it active.
Select 'Set EPD/FEN Position' from the game menu or
alternatively type <command-v> (the
standard paste command) to bring up the Set EPD/FEN
dialog.
With the dialog active, type <command-v>
(paste) to place the string into the dialog. The either
click
the SetPos or Cancel buttons. SetPos is
default and can be selected by typing <return>
or <enter>.
Cancel can be selected by typing escape.
Note: if the resulting position is illegal, Screamer
will beep and display a message in the
screen log explaining why the position is
illegal. In that case, the board remains unchanged.
One or more EPD strings can also be entered from
a file. At present this file must be called
"EPD Test File" and must be in
the same folder and location as the Screamer application
itself.
(See the 'Run Test File' menu command above).
The positions are searched sequentially at the
current search depth/time until each position
has been searched and the end of the file has been
reached. This file should have the filetype
"TEXT".
The format for the EPD file is as follows:
1. Each position is on its own line following
the EPD/FEN standard notation.
2. Blank lines are permitted and ignored
3. To enter comments into the file, begin
each comment line with a double slash
'//' (C++ style comment). This line
will then be ignored when interpreting this file.
4. To allow for variable times when searching
several test sets within the same file, or to
set the time automatically for a test
set or position, the following command can be
placed in the file on its own line
prior to the positions to be searched.
#tc=SSS
Where '#tc=' tells Screamer that this
is a command to set the _time_control_ to the
value following the command. 'SSS'
is the total search time for each position in
seconds.
Example: #tc=600 means search for 600 seconds
(10 minutes).
This search time is used for all positions
until reset by another #tc= command.
5. A sample "EPD Test File" is
supplied with the Screamer distribution.
System Requirements
Any PPC Macintosh with System 8.5 or greater.
It has not been tested with OS9 yet.
5 Mb of physical ram or greater. For best
performance, turn virtual memory off.
Maximum memory is approximately 45 Mb.
<THIS HAS BEEN FIXED>
Note: There is a library linking bug that prevents
Screamer from running on an OS older than
8.5. This should be fixed in a later release.
That will allow the release of a 68k version
as well.
A 68k version is available on the web site.
Known Limitations and Bugs
Stopping a test file early.
There is no command yet that stops a test
file early. (See Future Directions)
Typing <command-period> halts the
current search, advancing the file to the next position.
This can be done repeatedly until the all
the positions have been halted.
For a long file, this may become quite tedious.
Alternatively, by selecting the screen log
window (enable it in the options menu if it
is not on the screen) and then typing <command-period>
will cause Screamer to immediately
Quit. The analysis up to this point is
saved in the log file.
Future Directions
Add opening book and endgame tablebase support.
Add PGN file support.
Add Printing support.
Add Navigation Services for file and EPD Test
File Support.
Fix the memory fault problem to allow direct pasting
of FEN/EPD positions into the
game window.
Add the option for a Mate search (and enable the
option in the search menu).
Add preference data to remember board setup and
position, and search settings.
Contact Information, Credits, and Resources
Screamer Chess Web Site
http://pweb.netcom.com/~wbryant/screamer.html
For questions, concerns, feature requests or bug
reports...
Contact me at: wbryant@ix.netcom.com
For general information and discussion of computer
chess,
Try Computer Chess Club, a free web based
discussion board at: http://www.icdchess.com/ccc
The service is free, but moderated and requires
a valid email address and registration.
For computer chess source code try:
Tom's Simple Chess Program (TSCP):
E-mail: Thomas.Kerrigan@Colorado.EDU
http://ucsu.colorado.edu/~kerrigat/
For a more mature and complete chess program source
code try:
Crafty: ftp:// ftp.cis.uab.edu/pub/hyatt/
For Information on Exachess / Exachess Lite look
at:
http://www.exachess.com/
Exachess Interface: 'CHES' Apple Event Suite
Rolf Exner at www.exachess.com
Used with permission
American Chess Piece Set
Copyright Richard Fowell
"Richard A. Fowell" <fowell@netcom.com>
Used with permission
Powerplant application framework
Copyright Metrowerks Corportation
http://www.metrowerks.com
For information on other Macintosh chess software,
see the Macintosh Chess Software Index:
http://dmoz.org/Games/Board_Games/Chess/Software/Macintosh/
Legal Stuff
This program is freeware.
It is not in the public domain. I retain the
copyright to all parts of the program not
copyrighted by others as credited in this
document.
The black and white chess pieces are copyrighted
by me and may be used with permission in other
programs with appropriate credit and copyright
notification.
This program is provided as is without any expressed or implied warranties.
Use at your own risk.
Have fun.
William
wbryant@ix.netcom.com
This page was created using TextToHTML. TextToHTML is a free software for Macintosh and is (c) 1995,1996 by Kris Coppieters