Copyright: Copr. 1996 by Jon Dart.


Arasan

Introduction

What is Arasan?

Frequently Asked Questions (FAQ)

What's New?

Contacting the Author

Getting Started

Making moves

Playing a game

Loading and saving games

Reference

Menu Reference


What is Arasan
What is Arasan?

Arasan is a chess-playing program for Microsoft Windows (tm), Windows 95 (tm) and Microsoft Windows NT (tm).

Arasan is copyrighted, but under terms that allow its free use, with a few restrictions (see the About box for details).


FAQ
Frequently Asked Questions (FAQ)

What does "Arasan" mean?

Arasan means "king" in Tamil, a language spoken in South India.  It is basically the same word as "raja," which is Sanskrit in origin.

How strong a chess player is Arasan?

It's hard to say, because Arasan has not competed in tournaments.  Also, its strength will vary quite a bit depending on the speed and memory size of the machine on which it is run.  My best estimate is that version 3.0 is rated somewhere between 1900 and 2100 on a reasonably fast (486 or Pentium) system..

I want to know details of how it works.

Arasan is written in C++ and was compiled with Microsoft Visual C++, using the Microsoft Foundation Classes.  Complete source code is available, free of charge.


Whats New
What's New?

This is version 3.5 of Arasan, released in November 1996.

Changes since version 3.4

Several bugs in the chess engine have been fixed.  Also, the hash size settings in the Advanced dialog box were not being handled correctly - this has been fixed.  Uninstalling the program under Windows 95 now works correctly - there were problems in previous versions.

Changes since version 3.3

Arasan 3.3 could sometimes produce a "book move" for a position that was not actually in the opening book.  This has been fixed.  A consequence is that the book file is now larger, since it stores more information for each position.

Changes since version 3.2

Bugs involving Tournament and Game time controls have been fixed.

Changes since version 3.1

The following bugs have been fixed:

•	The Hint dialog could produce illegal moves.

•	High color (16 bit) and true color (32 bit) displays were not being recognized as color.

•	Thinking on the opponent's time was broken.  It works now.

Some fixes and enhancements have also been made in the search module and in the positional scoring routine.


Contacting the Author

Arasan was written as a hobby, and as such, no formal support for it is offered.  But if you find bugs in this program, have constructive criticisms, or want to suggest improvements, I would like to hear from you.  Please send e-mail to jdart@best.com.

If you are submitting a bug report, please try to include the following information: the version of Arasan you are running, the operating system you are using, what you did immediately before seeing the problem, and the chess position that was displayed when the problem occurred.


Making moves

Moves in Arasan are made with the mouse.  Move the mouse over the piece you want to move, and press the left button down.  Then, keeping the button pressed down, move the mouse to the square you want to move to.  Then release the mouse button.  Arasan will make the move if it is legal.

Note: to castle, select the king with the mouse and move it to the square it will occupy after castling.  Arasan will automatically move the rook, too.  If you are promoting a pawn, Arasan will prompt you for the piece to promote it to.


Playing a game

When Arasan starts up, it is waiting for you to make a move.  It assumes that you, the user, have the White pieces.  If you want to play Black, bring down the Game menu and select "Computer plays White".  If you do this, you probably also want to turn the board around, which you can do from the Game menu by selecting "Rotate board".

Arasan will respond to moves as you make them.  The default playing level for Arasan is a 2-ply search, which will cause Arasan to move quite rapidly.  See the Search limits section for information on how to change the playing level.

Arasan detects draws due to insufficient material, stalemate, and the three-move repetition rule.  It does not attempt to enforce the 50-move drawing rule or similar rules adopted by USCF and FIDE.

You can take back a move by typing ^T or selecting "Take back move" from the Game menu.  Typing ^F or selecting "Forward Move" from the Game menu will "replay" a move already made; in effect, this undoes a "take back" operation.

If it is your turn to move, Arasan can give you a hint.  Type ^H or select "Give Hint" from the Game menu.  After a short pause, Arasan will display a legal move, from either the opening book or from a brief search.  If you want to make that move, select "Accept" from the dialog box; otherwise, select "Another" and Arasan will display another move.  Note: Arasan spends only a very limited amount of time calculating the hint move, so it may not necessarily be a strong move, or the best move on the board.

If it is your move and you want Arasan to calculate a move for you, using its normal search depth, type ^G or select "Go (compute move)" from the Game Menu.  If it is the computer's move, this menu selection can also be used to force Arasan to stop thinking and make its move immediately.  Typing ^G every time a search completes will cause Arasan to play a game against itself.

At any time, you can get a listing of the moves made so far by selecting "Show Game Moves" from the Game menu.  Moves are shown in algebraic notation.

Typing ^N or selecting "New Game" from the Game menu will put the board back into its starting position and begin a new game.


Loading and saving games

Arasan automatically keeps a log of all games played during a given execution of the program.  This is kept in a file called "arasan.log," which is stored in the same directory as the program.  In addition to recording the game moves, Arasan records information about the search process, which you may find interesting.  Every time you execute arasan.exe, it overwrites "arasan.log," so if you want to save the contents of the log, you must copy it to another file after terminating the program.

The log file is not intended for permanent storage of games.  If you want to save a game so that it can be later re-loaded into Arasan and replayed, you must do so before exiting the program.  Select the "Save Game" selection from the File menu and Arasan will prompt you for a file in which to store a completed game.  Games stored in this way are written in a format called Portable Game Notation (PGN), which is a standard for exchange of chess games used by several different chess programs.

A game stored in PGN notation may be read into Arasan by selecting File Open and choosing a file with .PGN extension.  If there is more than one game in the file, Arasan will provide you with a list to choose from.  Once Arasan completes reading in the file, you can replay the moves by typing "^F" or clicking on the right arrow icon on the toolbar.

It is also possible to store an individual board position.  You may want to do this if you are in the middle of playing a game and want to resume it later.  To save a board position, select "Save Board" from the File menu.  You will be prompted for a file name to save the board to.  Board positions are stored in Forsythe-Edwards notation (FEN), which is a standard used by several chess programs.

To retrieve a previously stored board position, use the File Open command and select the .FEN file that you previously saved.


Menu Reference

File Menu

Browse Menu

Game Menu

Clock Menu

Options Menu


File Menu

Open

Opens a .PGN (game file) or .FEN (position file) for viewing.  If you select a PGN file and it contains more than one game, you will see a list of all the games and be able to choose the one you want to view.

Save

Saves the board position or the entire game.  If you select a file with the .FEN extension, the board position is saved; if you select a file with the .PGN extension, the game is saved.

Annotate

Arasan can read a file in EPD (Extended Position Description) format and add its evaluations to the file.  When you select Annotate, you will be prompted for a file name.  This file must exist and must have an .EPD extension.  Once a file is selected, Arasan will read it, add scoring and "best move" information for each position in the file, and then replace the original file.  The modified file can then be read by other EPD-capable programs, such as Bookup (tm).

Exit

The Exit selection on the menu terminates the program.  If you want to preserve the current game or position you must do so using the Save command before you exit.


Browse Menu

The Browse menu selections are active only after a game file has been opened that contains more than one game.

Next Game

The Next Game selection chooses the next consecutive game from the file.  Information about the players, event, and date is displayed in the status area to the right of the board.

Previous Game

The Previous Game selection choose the game in the file previous to the one currently being viewed.

Select Game

The Select Game command brings up a dialog box that shows all the games in the file, and allows you to choose one of them to view.


Game Menu

Go (Compute Move)

If the computer is calculating a move, this menu selection interrupts the search and forces the computer to move immediately.  If it is not the computer's turn to move, then this menu selection will cause the program to calculate and play a move.  By selecting Go repeatedly, you can cause the program to play a game against itself.

Take back move

Undoes the most recently made move.

Forward 1 move

After one or more moves have been taken back, you can replay those moves by selecting Forward 1 move from the menu.  Also, this is the command you would use to replay moves from a game that has been read in from a PGN file.

Give Hint

This command causes the computer to generate a list of moves, either from the opening book or from a brief search. A dialog is then presented that will allow you to choose a move from the list.  Caution: because only a short search is done, the "hint" move that the computer chooses may not be the best move on the board, and may even be a weak move or a blunder.  Use it with care.

Computer Plays White

This command is a toggle.  If the check mark is on next to the menu item, then the computer is playing White - selecting the menu item will cause the computer to play the Black pieces instead.  If the check mark is not on, then the computer is playing Black and selecting the menu will cause it to play White.

Rotate board

This rotates the board display without changing the side whose turn it is to move, or the side that the computer is playing.

Show game moves

Displays a list of all the moves made in the game so far.

New game

Clears the board and sets up the pieces in preparation for a new game.  Any game that you have previously been playing is lost, unless you save it first.


Clock Menu

Pause

The Pause command stops the clock temporarily.  If the clock has been paused, there will be a check mark next to the Pause menu item.  In this case, you can select Pause again to restart the clock from its current position.

Reset

The Reset command sets the clock times for both sides back to the starting position.  This  also happens automatically when you begin a new game.


Options Menu

Search Limits

The Search Limits menu selection allows you to control how long Arasan will search before making a move.

Click here for more information on search limits

Preferences

The Preferences menu selection allows you to control some aspects of Arasan's behavior.

Click here for more information on preferences


Search Limits

To control how long Arasan searches before making a move, bring up the Search Limits dialog from the Options menu.

There are four choices for type of search: Fixed Ply, Time Limit, Game, and Tournament.

In a Fixed Ply search, Arasan searches for a given number of half-moves (plies).  For example, in a 2-ply search, Arasan will consider all possible moves it can make, and possible replies to those moves by its opponent.  The deeper the search, the longer it will take to complete.

Arasan can search up to a limit of 20 plies.  If you select a higher number, you will get 20 (note: a 20-ply search will usually take a very long time to complete!).

In a Time Limit search, you can select how many moves Arasan must play, and how much time is allotted to make those moves.  For example, if you select 60 moves in 60 minutes, Arasan will take an average of about 1 minute to make each move.

A Game search allows a fixed amount of time for the entire game (for example, if the game limit is set to 30 minutes, each side has 30 minutes in which to make all moves).  Arasan can exceed the time limit (and thus lose on time) in this kind of game.

A Tournament time control requires each player to make a fixed number of moves in a fixed amount of time (for example, 40 moves in one hour).  You can also select what happens after the first time control by using the Secondary Search Limits tab.

Changing the search limits while a search is in progress will cause the current search to terminate.  You can restart it by using the Go command in the Game menu.

Once you have set a search limit, it is saved in the Windows Registry, and will be set the same way the next time you run Arasan.


Preferences

The Preferences selection under the Optionsmenu brings up a property sheet (tabbed dialog) with four tabs: General, Colors, Openings and Advanced.  (If you are running Arasan on a mono system, you will not see the Colors tab).

The General preferences page allows you to set options that affect Arasan's operation.

The Colors page allows you to set the board colors.

The Openings page lets you select the style of opening play you want the program to use.

The Advanced page lets you control some technical details of the program's behavior.

Once you have set the preferences and clicked on the Ok button, they will be saved in the system Registry, and will be set the same way the next time you run Arasan.


Advanced
Advanced Options

The Advanced page of the Preferences dialog allows you to control some fine details of the program's behavior when it is searching for a move to make.  To fully understand these options, you probably need to know something about computer chess programming.  However, I will try to explain them a little bit for the benefit of non-programmers.  The following things can be controlled in this page:

Killer moves

History heuristic

Null moves

Search extensions

Hash table

The Reset All button will restore the settings of all the options in the dialog to their default values.  Generally the default settings will produce the strongest play.


Killer_moves
Killer moves

Killer moves and the history heuristic are two techniques for improving move ordering.  Generally a chess program will complete a search faster if it tries good moves before bad moves.  We cannot know in advance whether a move will be good or bad, but there are some ways the program can guess.

Arasan "remembers" up to two moves for each search depth (ply).  These moves have previously been found to be good enough to refute the opponent's move that has just been made.  When Arasan encounters a new position in the search, it will try these moves early in the search process, in the hope that they will prove good again.

In the "Advanced" preferences page,  selecting 0 killer moves will disable this feature.  Selecting 1 will keep only one killer move per ply.  Selecting 2 keeps two killer moves per ply.


History_heuristic
History heuristic

This is a more elaborate version of the killer move idea.  Arasan will maintain a table of scores, one for each combination of starting square and destination square.  Every time a move causes a refutation, the score for that move is incremented.  When a new position is encountered, moves that have high history scores will be tried before moves that have low history scores, if this checkbox is on.


Null moves

The "null move heuristic" is a technique that can sometimes reduce the number of positions (nodes) that need to be searched.  In a null move search, one of the players is given two moves in a row and a minimal search is done.  If the score for the side to move is very low, even after having a "free" move, we can determine that the first move was bad and stop searching that position.

Three options for null moves are available.  If you select 0 for "null move depth", the null move feature is disabled.  If you select 1, searching proceeds to a depth 1 less than normal after a null move is made.  If you select 2, depth is reduced by two after a null move.  Generally "2" will produce the fastest searches.


Search extensions

In a null move search, the program searches some positions to a shallower depth than usual.  In some cases, it also searches deeper.  The "extensions" box in the Advanced preferences page allows controlling the situations where a deeper search will be done.

•	Check extensions.  If this box is checked, and the side to move is in check, Arasan will search deeper.

•	Forced move extensions.  If this box is checked, the search will be extended following a forced move (a move that is only legal move available).

•	Pawn push extensions.  If this box is checked, moving a pawn to the 7th rank causes the search to be extended.


Hash table

Arasan maintains a hash table, which is a storage area that holds information on positions previously visited in the search.  If the same position is visited twice (which may happen because of a transposition of moves), then information about that position is retrieved from the hash table and it may be possible to avoid searching that position again.

Normally it is advantagous to have the hash table be as large as possible, with the restriction that you don't want it so large that Windows can't fit it into available memory.

If you check the "Auto" box, Arasan will calculate how large the hash table should be.  It will leave some free memory for Windows to use for other programs.

If you want to override this calculation, check the "Fixed" button in the "Hash Table Size" box and enter a number into the "Hash Table Size" edit field, which will then be enabled.  The number you enter is the number of positions (nodes) that can be stored in the hash table.  Each node takes about 16 bytes of memory.  Entering zero will disable the hash table.


Colors

The Colors page under the Preferences menu allows you to set the board colors.  This page will not be visible if you are running Arasan on a monochrome display.

The dark and light square colors are shown, and a button next to each color will bring up a standard color selection dialog.

In order to make the color changes permanent, you must both click Ok in the color selection dialog and click Ok to close the Color page.


General preferences

Following is a description of the preferences you can set on this page.

Beep after move: If set, the bell sounds after Arasan makes a move.

Beep on error: If set, the bell sounds if the user attempts to make an illegal move.

Computer can resign: If set, Arasan will resign if it appears to be hopelessly behind or material, or about to be mated.

Think when idle: If set, Arasan will "think" on its opponent's time.  This may enable it to search deeper when it is the computer's turn to move.


Openings

The Openings page allows you to select the style of openings Arasan will use.

Arasan has an opening "book" containing over 50,000 moves.  The default style of play is "Balanced," which means that Arasan will randomly choose from a wide variety of opening moves.  There are some openings that Arasan will not play itself, but it will respond with "book" moves if you play them.

If you select a different style, Arasan will not always play in the style you select, but will generally favor moves that match the selected style.

The following styles (besides Balanced) are available:

•	Gambit style - the program will play gambits (openings that offer a pawn or piece in exchange for attacking chances).

•	Aggressive style - the program will favor open, attacking games.

•	Unusual style - the program will play rare or unusual opening moves.

•	Closed style - the program will favor a closed game, one that involves the gradual accumulation of positional advantages, rather than direct attacks.


Secondary Search Limits

The Secondary Search Limits dialog page is used to set the time limit that will apply after the first time control (set with the Search Limit page) is reached.  The settings in this dialog are obeyed only if the Search Limit page specifies a Tournament type of time control.

If you select None for the secondary time control, the first one will repeat: e.g. if the time control is 40 moves in an hour, then after 40 moves have been made, the player will have another hour to make the next 40 moves.  But you can also set a different time control in the Secondary Search Limits page.  The two types which are allowed are Tournament or Game.  A tournament time control includes a number of moves and a period, such as 30 moves in 30 minutes.  A Game time control specifies a limit for the entire game, such as 30 minutes.