VChess 3.5 - A Chess game for Amiga-Computers (OS 2.0+) © 1993-1995 by Stefan Salewski All Rights Reserved Copyright and other legal stuff VChess is NOT a PD-Program, but Shareware! VChess and most other files of this package are Copyright © 1993-1995 by Stefan Salewski. In spite of several tests, no warranty is made that there are no errors in VChess. YOU USE THIS PROGRAM AT YOUR OWN RISK. In no case I will be liable for any damage, direct or indirect, resulting by the use of VChess. The complete VChess 3.5-Package contains the following files: File or directory Size Meaning ------------------------------------------------------------------------ VChess 115308 Mainprogram, V3.5, © S.Salewski VChess.doc 61646 English documentation VChess.dok 80702 German documentation VChessOpenings 24088 150 Chessopenings Product-Info 1973 For KingFisher 2.0 or similar tools. ReqToolsLibrary Dir ReqTools.library V38.1266 © N. Francois Games Dir Saved games. Text Dir Game, saved as text file. Icons Dir Icons for games, text and configurations Catalogs Dir Catalogs for german, french, swedish Configs Dir Example-Configurations Checkmates Dir Some Chckmates ( mate in 2, 3 or 4 moves) Chesstasks Dir Some Chesstasks(find the best move) Catalog-Translations Dir English, deutsch, svenska, francais,empty svenska.ct, produced & © Rikard Bosnjakovic français.ct, produced and © Denis Gounelle Distribution of VChess is only allowed if the following conditions are fulfilled: All these files must remain unmodified. None of these files may be distributed on its own, the entire package must be distributed together. (It is allowed to distribute this package without ReqTools.library, because I think nearly everybody will have it already, or to replace this library with a never release.) (It is allowed to archive these files with archiving-programs like LHA (© Stefan Boberg) if it is possible to retrieve the files from the archive in their original state.) Permission is granted to include this package in Public-Domain collections, especially in Fred Fish's Amiga FD-Disk Library (including CD ROM versions of it). The complete package may be (in archived form) uploaded to Bulletin Board Systems or FTP servers. PD-dealers and other people who want to distribute VChess are only allowed to take money for the floppy disk and copying efforts. Nobody may take more than $5(US) or DM 5 for the disk with VChess. This is also valid if there is other software besides VChess on the Disk. The distribution of VChess in "Software Packages" (more than one disk) together with other Software is only allowed with my written permission if the package cost more than US$ 5 or DM 5. The distribution of VChess on CD-ROM is only allowed if the CD-ROM contains the contents of FD-Disks (for example Fish 500-1000) or if the price of the CD-ROM in not greater than US$0.5 per megabyte. This means, that nobody may sell a CD-ROM containing VChess and 100 Megabytes of other software for a price greater than US$50. Distribution of VChess together with commercial software is forbidden. Distribution of VChess 3.5 on "Coverdisk" of Computer magazines is only allowed if the following three conditions are met: -The price of magazine (including the coverdisk) may not be greater than $7(US). -The disk must be freely distributable, so that everybody who bought the magazine can copy the disk for his friends. -And the magazine must tell all of the purchasers that the author of VChess got no money from the magazine. (The reason why I make such strong restrictions about Coverdisks is as following: Some magazines copied VChess 2.0 on their coverdisk without asking me for permission or informing me about it. The same did the german magazine "Amiga-Plus" with release 3.1 of VChess! I think, that somebody who got VChess from such Coverdisk may think, that I got some money from the magazine, and he may suppose that it is not so important to pay the shareware-donation. But of course this is not true. None of these magazines gave me anything for it. So even people, who got VChess from an expensive Coverdisk, have to pay their contribution.) Of course it is reserved for me to forbid single companies or persons the distribution of VChess. User of VChess should regard this: An empty Floppy-Disk costs less than US$1, and copying VChess takes less than two minutes. If you paid more than US$3 for the disk with VChess, then this was quite expensive. But if you have paid more than US$5, this was too much. Try to get your money back, and tell me about it. What is new in release 3.5 ? The playing strength should be better again. In release 3.4 there was a little problem: If the human player did his move at once without thinking, it occurred sometimes, that the computer told: "This is not a legal move". So it was necessary for the human player to wait some seconds and then to do the move again. This is fixed now. Additional there is a greater Opening-Library created by Uwe Zedtler in this package. This big library is copyright by Uwe Zedtler, and Shareware. For more information about this library see the german documentation, called "VchessOpeningsV1.0.liesmich". Til now I have not used this large library, but I guess that it may be useful for good players. Unfortunally this library needs much memory. To use it, just replace my small library with that large one. To say it again: This large library is © by Uwe Zedtler, I have only included it (with permission of Uwe Zedtler) in this package. What is new in release 3.4 ? The playing strength should be much better now! Please don't be surprised if you see that the calculating-power of the computer (moves per second, Mps) is smaller now! Now the computer calculates capture-sequences more deep, and is more intelligent, but needs more time per calculated move! I think the result is a better playing strength. The solving of chesstasks is also much better now, all tasks in the drawer Checkmates/Solved are solved on my A3000 in less than 20 minutes. I think this is not bad. (But there are some task in the drawer Checkmates/Unsolved which my A3000 can not solve in 10 minutes.) Additional, the computer is better in endgame now. In most cases, the computer can force a checkmate if playing with king+bishop+bishop or with king+bishop+knight versus a single king in less than 50 moves now. Beside this, there are some other small improvements, but there are no big changes from release 3.3 or 3.4 to 3.5. So if you are familiar with release 3.3 or 3.4, then it is not necessary to read this documentation again. (It should be possible to use old 3.3/4-datafiles, like configuration files, saved games or the opening-library with VChess 3.5.) Introduction VChess is written fully in Oberon language, and was developed on an Amiga 3000 using Amiga Oberon V 3.11d (© Fridtjof Siebert). With the help of OS 2.0, ReqTools.library and Amiga-Oberon, I have produced a compact, powerful and easy to use program. To run this program, you need an Amiga with OS 2.0 or greater, and additional the ReqTools.library (© Nico Francois). If the ReqTools.library is not part of this package, you can find it for example in the "March/April 1994 FreshFish CDROM" (New/util/libs Version 2.2), on the AmigaLibDisk 794 (version 2.1a) and of course in AmiNet. Please note that there exists a Preferences-Editor for ReqTools.library. You can use this Editor (not part of this package) to modify the behaviour of the ReqTools.library. VChess needs not very much memory. Without the use of the Opening-library, it may be possible to use VChess on an Amiga with only 512 K. The normal stacksize of 4096 Byte should be enough too for normal playing, but with 8192 Byte stack you can be sure that no stack-overflow can occur. Installation Copy, if not already installed, the ReqTools.library to LIBS:. This is all. Now you can start VChess from Workbench with Double-Click. If you want to install VChess on your hard disk, it is best to copy the whole VChess-Drawer to hard disk, because this drawer contains the Opening-Library and other things. VChess can use Catalog-files to adapt itself to other languages than English. VChess searches for these catalogfiles in PROGDIR:Catalogs/language. Where PROGDIR: is the directory in which VChess resides. If, for example, your preferred system-language is "deutsch", then VChess will load "PROGDIR:Catalogs/deutsch/VChess.catalog". You can copy the catalogfile to LOCALE:catalogs/language, VChess will find it there too, but I think it's better to leave the catalogfiles in the VChess-Drawer. (You can use VChess without its VChess-Drawer, but this is not recommended because many additional files like the opening-library, saved games, Icons and so on belong to VChess.) Starting VChess The easiest way to start VChess is with a Double-Click on its Icon. But of course you can start it from Shell by typing its name and then pressing the -Key. (VChess needs no parameters.) If there is the file VChess.config or Configs/VChess.config in the Drawer of VChess, then the program uses this file for the startup-configuration, otherwise defaults are used. It is possible to make VChess resident with the shell-command RESIDENT. This can be useful for a few people, who need more than one board. For example type in the shell CD VChess RESIDENT VChess RUN VChess RUN VChess to get two boards without wasting of memory. This is not very nice, because both boards appear at the same position, and you have to save and load a game to exchange games, but it is possible. And most players will only need one board! First Steps Before you go on reading this text, it is better to start VChess now and try it out. When the program has started, you can see four windows. The big one with the chessboard is the main-window. The other windows are only help-windows for showing some information. If one of these four windows is active, then you can press the right mousebutton to take a look on the Pulldown-Menu. (Don't be sad if the display looks ugly at this time. Many things like colours, fonts and screen-resolution can be changed.) Now select the menuitem "Config/Reset to defaults" to reset all adjustments to defaults. Start the game by selecting "Project/NewGame". Now you play with the white pieces against the computer. To move a piece, simply click on it with the left mousebutton. (To click means: Move the pointer over the chessman, and then press and release the left mousebutton.) Now this piece is marked. Now click on the destination-square. If this was a legal move, the piece will move from source to destination, and the computer will answer with its move. Now it's again your turn, and so on. Don't hesitate to test some of the menu-functions. The meaning of most of them should be clear, just try it out. Of course you can re-size the windows, or close the helpwindows. Shareware-Contribution I started the development of VChess in summer 1992, and now in December 1995 version 3.5 is finally (nearly) finished. I guess, that this program took more than 2000 hours of work till now. I think you can imagine how much money the development of this program would have cost a software-company, or how much money I could have earned if I had spent this time somewhere else. And last not least the costs that the development of software causes are not negligeable. At the beginning I planed to sell VChess in a commercial way. But because even with a commercial distribution it is not secure that the author gets a justified amount of money for his work, I decided to distribute VChess as Shareware. Shareware means, that the program can be freely copied, so that everyone can get it (nearly) free of charge from friends, PD-Dealers or by BBS-Systems. But when you like the program, and you want to go on using it, you have to send a donation to the author. VChess 3.5 is true shareware again. This means that there are no restrictions in this version. I emphasize this, because many authors have decided to release only restricted versions of their software for freely distribution. But there are no restrictions in VChess 3.5. This means that you can test all functions of VChess, and you don't have to wait many weeks after paying the contribution to get the fully functional version from the author. And I have the advantage that I save some mailing-work and postage. So if you like VChess and want to go on using it, please send US$15 or DM20 to the following address: Stefan Salewski Stolper Weg 3 D-21680 Stade (Germany) Please compare this address with the text that you can see if you select the menuitem "Project/About". If there are any differences in the addresses, this means that somebody has made illegal modifications. In this case try to get a clean, unmodified version of VChess. If you live in Germany, you can send me a "Verrechnungsscheck" or make an "Überweisung" to: Stadt-Sparkasse Stade Bankleitzahl 24151005 Kontonummer 823864 Otherwise I think the best way is if you send me the money in cash. It may be possible to send an EuroCheck (only in DM !) or to send me the money by postal money order. (But it is impossible for me to cash in foreign checks, even if the amount is in DM. I got an check from an English bank (DM 20), but I had to send it back because the banks in Stade charge DM 27 to cash it in.) All people, who send me the contribution, will get a postcard or letter from me, so that they know that I really got the money. If you should not get this notification after six weeks, then something went wrong. (Please don't forget to give me your FULL postal address.) Playing-Strength Of course it is a big difference if you play with a 68000- or 68040-processor. On my A3000 I lose most games against the computer, if I play with fair conditions. Fair conditions means, that I don't take back moves, and that I don't use more thinking-time than the computer. I can't make precise statements about it, because I have too many possibilities to compare VChess with. The playing-strength of version 2.0 was not very great, but I think that in Version 3.5 the playing-strength is not bad. The playing-algorithm is completely a development of my own, I spent approximately 1000 hours on it. I guess that other people thought more about it. The best way is if you test the playing-strength yourself. I think, if you lose more than 50% of all games, then the playing-strength is big enough for you. Note: If you lost nearly every game, it would be very frustrating. Of course, if the playing-strength was very high, it would be possible to degrade it artificially. But if you won against the computer, you know that the computer have played intentional bad, you would not be so glad about your win. If you think that the playing-strength is too low, you can tell me. If many people think so, I will try to increase it. For my own games the playing-strength is currently big enough. (Sometimes it may occur that the computer make an obviously bad move. This can happen for example, if the thinking-time is short, so that the computer can't see an imminent attack of his opponent. In this case you can do this: Select a longer thinking-time (for this move only), and then select Extras/Undo last Move from menu. Now the computer will take back his bad move. Using a longer thinking-time, he will find a better move in most cases. Now you can use the smaller time again. For example, I use 30 seconds thinking-time on my A3000. If I notice, that the computer has done a very bad move, I select 3 Minutes thinking-time, and Undo. Now I fetch a cup of tea, and when I come back, the computer has found a better move in most cases. Now I select again the old thinking-time of 30 seconds. A other way is this: You can select Playmode/Human-Human, use Undo, and do a better move yourself. Now select Playmode/Human-Amiga again. The Use of VChess After starting VChess, you will see the mainwindow, and perhaps the three other windows. The behaviour of the windows is like the windows of the Workbench. You can move, re-size and close them. If you close the mainwindow, the program will terminate. To move a chessman, simple click on it and then on the destination square. (To make a rochade, simple move the king. The rook is moved automatically.) If you clicked on a piece, and this click was a mistake, just click again on it to delete the selection. In the window titled "All Moves" you can see all moves of the current game. The algebraic notation is used. "2.Bf1-b5 e7-e5" means, that this is the second move, White moved the Bishop from square f1 to square b5, and Black moved a pawn from e7 to e5. The letters behind the movenumber (2.) have the following meanings: P Pawn N Knight B Bishop R Rook Q Queen K King The "P" for a move of a pawn is usually substituted by a space. Some special characters are used for special moves: "O - O" or "O-O-O" means the small or big rochade. "e.p." indicates the special pawn move "En passant". "+" and "#" are used to indicate check and checkmate. "#W" means, that White is checkmate, "#B3" means, that Black will be checkmate in 3 half-moves. "*W" or "*B" is my own notation if White or Black is stalemate. The other window titled "Thinking..." shows the valuation of all currently possible moves. The numbers on the right side are the valuation of this move. The number 100 is equal to the gain of a pawn, -25 is equal to the lost of a quarter pawn and so on. "3-3 Be4xd5 50" means the following: If the Bishop on square e4 would hit the chessman on square d5, this would result in the active player gaining of one half pawn. The characters "3-3" describe the deep of thinking, in this example three half-moves. (A half-move is a move of a white or a black piece.) In this example the computer has calculated for each possible move of the active player a move of its opponent, and for each of these moves of the opponent again a move of its own. From these three half-moves the total gain of this move is calculated, and the computer will select the move with the highest total gain. Note that in the average a player can make one of 30 possible moves. And for all of these 30 possible moves there are again 30 moves as a response, and so on. This means, if the computer calculates 3 half-moves deep, the computer must process 30^3=30*30*30=27000 half-moves. You can think about it as the computer building a tree for each possible move. The first half-move is the root of a tree, and from this root there are 30 branches to a opposite move, and from each opposite move there are again 30 branches to the opposite-opposite-moves and so on. Of course such a tree doesn't have to be totally symmetric, some branches can be longer (more nodes) and others shorter. If an entry begins for example with "3-4", then this means that the basic depth of this tree is 3 nodes, but this branch is 4 nodes deep. Or sometimes you can see entries like "5-3". This means that the basic depth of this tree is 5 nodes, but this branch is cut because it looks like a bad move, or a checkmate will occur in 3 half-moves. The fourth window is called "Move-Chain". If you click on an entry in the "Thinking..."-Window, then the movechain of this move is displayed in this window. This will help you to understand why the computer thinks that a single move is a good or a bad move. The display of this window looks like this: ------------ Gain: 40 +3 Nb8-c6 50 e4xd5 240 Qd8xd5 300 Nf3xe5 70 ------------ This means: If the active player made the move "Nb8-c6", his opponent would react with e4xd5 and so on. The real gain of the move "Nb8-c6" is 50-240+300-70=40. The +3 is a random-number added to the gain, so in the "Thinking..."-window the displayed gain is 40+3=43. (The displayed gain in the "Thinking..."-window may differ a little bit from the sum of the movechain. This is not a bug, but occur because moves at the end of the chain are less weighted.) Playing- and Buildup-Mode There are two modes: Playing-Mode, and Buildup-Mode. In the Buildup-Mode you can move pieces without any restrictions. In Playing-Mode you can do only legal moves, and the chess clocks are running. The Buildup-Mode contains a special sub-mode, called Replay-Mode. Replay-mode means, that there is a game in memory (just played or loaded). In this case you can use the menu items "Next Move", "Previous Move" etc. to replay it, and you can save the game. If you are in Replay-Mode and modify the board by moving pieces, you will go to the plain Buildup-Mode. If you are in the plain Buildup-Mode, then you can save only the contents of the board without any moves. Titleline of the Mainwindow The windowtitle is used for displaying various information, for example error-reports or the last move. If the computer has done a move, you can see in () which opening the computer uses, or the computing-power of the computer in moves per second, Mps (really Half-moves). Chess clocks At the top of the board window you can see three chess clocks. The clock on the left displays the total time for the white player, and the clock on the right the time for the black player. The clock in the middle shows the time for the active player. The Menu If one of the four windows is active, then you can select one of the following functions with the right mousebutton: Project ------- "New Game" With this item you start a new game. All pieces are built up on their initial position, and it is white's turn. "Start Game" With this item you also start playing, but the pieces stay at there former places. "Solve for Mate" With this item you can activate a special playing-mode: The computer will go on thinking until the computer sees a mate or stalemate. A Requester will ask you "How many moves to mate ?". Mate in one move means, that the active player makes a move, and then his opponent is checkmate. This is trivial. Mate in 2 Moves means, that the active player makes a move, then his opponent makes any move, and then after the second move of the active player the opponent is checkmate. If Extras/Playmode/Extend is activated in menu, then the computer will extend some brances of the tree, for example branches with many check-offers. In most cases this is useful, so Extras/Playmode/Extend should be activated in the general case. First the computer will try to find a mate without depth-extension, then, if no mate is found, he will try to find a mate with depth-extension. If you click for example on "2", this means that the computer will start searching for a mate in 2 moves, then he will extend some branches. If he can not find a mate, he will go on searching for a mate in 3, first without extension, then with extension. If you are sure that the mate is not a result of some checks, then it may be useful to deaktivate depth-extension. But in general case, Extras/Playmode/Extend should be activated, and you should click on "2" to start searching. You can stop the solving for mate, if you select "Stop Game" in menu. This can be necessary, because there exists many chesstask which VChess can not solve in short time. If there are no changes in the Thinking-window for long time, then this task is to difficult for VChess, and you should select "Stop Game" in menu. (All tasks in drawer Checkmates/Solved are solved in less than 20 minutes on my A3000. But the task in the drawer Unsolved my A3000 can not solve in some minutes.) When the computer has found the way to checkmate, he makes the first move and stops the game. You can see all moves to mate in the MoveChain-Window. In general case, the next move is not clear, the opponent can react with more than one single move. This is the reason why the computer will not do all moves to mate. But if you think that it is useful to save a special way to mate then you can do this: Select Thinklist/Update Movechain/No Update and Playmode/Human-Human from menu. Now start the game with Project/Start-Game and play the moves which you can see in the Move-Chain-Window. Then you can save this way to checkmate by selecting Project/Save Game. "Stop Game" Terminates the current game (or solving for mate). "Save Game" With this function you can save a game, to go on playing it later or to analyse it later. You can save it in Buildup-Mode and in Playing-Mode. If there is no game in memory, or the board is modified, then only the board is saved. Please note the following: Whenever you make a saving-operation, like "Save Game" or "Print Movelist", or when you add a game to the Opening-Library, then the game is saved only to the current position in the game. This means, if you have take back a move with "Extras/Undo", then this move is not saved. (This is not a restriction, but a feature. So you can prevent saving the last bad move of a game. If you wants to save the whole game, just select "Setup/Last Move" or "Extras/Redo" from menu before saving.) "Save Movelist" The actual game is saved as a text file in algebraic notation. "Print Movelist" The actual game is printed as a text file in algebraic notation. "Give Up" A Requester will ask you if you really wants to give up. If so, then the game will stop, and the default comment to this game will be "White/Black gave up". "Offer Draw" Use this to propose a draw. In release 3.5 a draw is always accepted, if the current position has occured 3 times (Position-repeatition-rule) or if there was no progress in the last 50 moves (50-moves-rule). (The game ended in a draw, neigther side won. In german we use the word Remis, I think it's a french word.) "About" This item displays the address of the author of VChess. "Quit" Terminates the program. Players ------- "Human-Human" Two human players play against each other. "Human-Amiga" A human player plays with the white pieces against the computer. "Amiga-Human" The computer plays with the white pieces against a human player. "Amiga-Amiga" Computer plays against computer. Time ---- With this menu you can change the thinking-time of the computer: "10 Secs, 20 Secs, 30 Secs" Thinking-time is 10, 20 or 30 seconds. "1 Min, 2 Mins, 3 Mins, 5 Mins, 10 Mins, 30 Mins" Thinking-time is 1, 2, 3, 5, 10 or 30 minutes. "1 Hour, 3 Hours, 8 Hours, 12 Hours, 24 Hours" Thinking-time is 1, 3, 8, 12 or 24 hours. "Infinite" The computer calculates until a mate is found, or until you select "Extras/Break" to force the computer to make his move. "Custom" With this function you can enter a custom thinking-time. With the four gadgets you can determine if your input is in seconds, minutes or hours. If you only press , then your input is assumed to be in seconds. "Equal ?" If this item is marked, then the computer will adapt its thinking time to the thinking time of the human player. "Full ?" If this item is marked, then the computer will use the full thinking time. Otherwise he will sometimes make his move a little bit earlier. (In most cases activating this item means wasting of time.) Thinklist --------- "Refresh" The computer is always thinking for the active player, even if the active player is a human player. If you select this item, then the list of all currently possible moves together with their valuation is displayed. Of course the valuation may change with time, because the computer is thinking deeper and deeper. So if you select this item after some time again, the valuation will be not the same. You can also select this item if the computer is the active player, to see how the computer evaluates the different moves. (In release 2.0 this item was called "Help", because usually a human player would use it if he didn't know what move he should make.) "Refresh & Sort" Like "Refresh", but the moves are displayed sorted, best move at the top. "Show old List" This item is similar to "Refresh", but it displays not the current (active) list, but the old list containing the last move. Sometimes it is necessary to take a look on the old list, for example if the computer makes a strange move, and you want to find out why he made such a move. If the list containing this strange, last move is not visible, then select this item to display it again. "Show old List sorted" Like "Show old List", but the moves are displayer sorted, best move at the top. "Show Best Chain" Displays the Movechain of the currently best move. (You can use this item or "Refresh & Sort" to get help from the computer.) Please note: The best move is not always the one with the highest valuation! The computer may prefer a move with a smaller valuation, but with a greater depth! "Beep if updated ?" If this item is marked, then the computer makes an audible beep if the Thinklist- or MoveChain-Window is updated. "Show sorted ?" If this item is marked, then the Thinklist is displayed sorted. "Update Display" "If changed ?" Update Thinklist and Move-Chain whenever there are changes. This may slow down the calculating power, because in early states of a thinking- process (the first seconds) there are many changes per time interval. "Automatic ?" Update Thinklist and Move-Chain if it is useful, for example after 2, 5, 10, 20, 30, 60 seconds, and then whenever there are changes. "No Update ?" Only update the display, when the user select "Thinklist/Refresh & Sort" or an equal item. The "Move-Chain"-window is updated, if the user clicks on an entry in the Thinklist. "Refresh if" "It's Computer's turn ?" Refresh Thinklist and Move-Chain, if the computer is the active player. "It's Your turn ?" Refresh Thinklist and Move-Chain, if a human is the active player. "Update MoveChain" "Best Move ?" Display in the Movechain-Window the best move. "Current Move ?" Display in the Movechain-Window the current (last calculated) move. "No Update ?" Don't update the Move-Chain-Window automatically. The "Move-Chain"- window is updated, if the user clicks on an entry in the Thinklist. Display ------- "Show Movelist" The helpwindow, which shows the moves of the current game, is opened or brought to the front. "Show Thinking" This function will open the window, which shows the valuation of all currently possible moves, or brings this window in front of other windows. "Show MoveChain" If you select this item, then the window, which displays the movechain of a special move, is opened or brought to the front. "Rotate" "90+, 180, 90-" With these items you can rotate the board. "Change Colors" If you select one of the following eleven items, then a Colour requester is opened. Click on the colour, which should be used for the drawing. If you use a custom-screen, you can use the sliders to change the colour-values. But if you play on a public-screen, it's better to select only one colour. You can only select one colour at a time. If you click on "Ok", then the board is drawn with the selected colour. For pieces and squares you can select two colours, A and B. Colour B is used for the border of the pieces, and although if the squares are not monochrome (pattern). "White Pieces A" Colour A (inner) of white pieces. "White Pieces B" Colour B (border and pattern) of white pieces. "Black Pieces A" Colour A (inner) of black pieces. "Black Pieces B" Colour B (border and pattern) of black pieces. "White Squares A" Colour A of white squares "White Squares B" Colour B of white squares "Black Squares A" Colour A of black squares "Black Squares B" Colour B of black squares "Board-Border" Colour of the border of the board. "Board-Text" Colour of the text of the board. (1..8, a..h, and chess clocks ) "Rectangle" Colour of the rectangle, which is drawn around a selected piece or square. "Change Patterns" You can select between four different patterns for the squares and pieces: Mono (only colour A), points, lines up and lines down. "White Pieces" Pattern for white pieces "Black Pieces" Pattern for black pieces "White Squares" Pattern for white squares "Black Squares" Pattern for black squares If the display looks ugly on your screen, you should try other colours and patterns. The defaults look nice on an hires-interlace-screen with OS2.0-colours, but if you have to play on a screen with lower resolution or different colours, then it's a good idea to try other colour-selections and patterns. "Setup Mode ?" The board gets a border on the left and right side. On this border rest some chessmen. In the Buildup-Mode, you can select these pieces and use them to build up a position. Also you can move pieces on the border to throw them away. In playing-mode the border has no function. "Coordinates ?" If you turn off coordinates, you have more room for the pieces. But I think this is only necessary if you have to play on a screen with very low resolution. "Chess Clock ?" You can turn off the clock. If you have turned off coordinates, clock is always turned of too. "Squareframes" "White ?" Draw a frame in colour A around white squares "Black ?" Draw a frame in colour A around black squares "Change Screen" With this item you can select if you want to play on the default public screen, on a public screen or on a custom screen. If you want to play on a public screen, you have to type in its name. If you want to play on a custom screen, it is recommended to use a screen with four or eight colours. It is possible to use a screen with only two colours, but this will not look very nice. More than eight colours are not recommended, because VChess currently doesn't use more than eleven different colours. Please keep in mind, that screen resolution and number of colours may affect the calculating speed of your computer. For example on my A3000 calculating speed is degraded about 50% if I use a hires-16-color-screen or Productivity-Mode. Note that parts of the pulldown-menu may be invisible if you use a large screenfont and a screen with a low horizontal resolution. "Screenfont" If you play on a custom screen, then you can select a font which is used for menus and windowtitles. "Textfont" With this function you can select a font which is used in the active window. First click in the desired window to make it the active one, then select this item. So you can select different fonts for each window. (Selection of a proportional font may give strange results.) Set Up ------ You can access this menu only if you are in Buildup-Mode, maybe you have to select "Project/StopGame" before. "Load Game" With this function you can load a game, to analyse it or go on playing it. For example you can select the item "Next Move" multiple times to go to a desired position in a game, and then select "Project/StartGame" to start playing from this position. If you have loaded a game, then the position is at the beginning of this game. So if you want to continue a loaded game, it is necessary to select "Last Move" before starting the game. There is a good reason why we don't jump to the last move automatically: Maybe you got a solved Chesstask on disk, for example a "mate in 3". If you load this chesstask, you probably will try to find the solution by yourself first. Only if you can't see it, you will use "Next Move" from menu to display it. "First Move" Jumps to the first (really the one before) move of the actual game. "Next Move" The next move is performed. "Previous Move" Takes back the last move. "Last Move" Jumps to the last move of the actual game. "Replay Game" Replays the actual game from the current position to the last move of this game. To replay from the beginning, it may be necessary to select "First Move" before. The speed of replay depends on "Extras/Blinken", see below. If you make any user-input in the boardwindow during replaying, like mouseclick or menu operation, then the replay is terminated. "Clear Board" All pieces are removed from the board. "Build Up" All pieces are moved to their start-position. "Reset" Resets a modified board. This is useful, if there is a game in memory (just played or loaded), and you have modified the board by moving pieces (or changed the active colour with the following two items). In this case it is not possible to go on playing this game, to use "Next Move", "Previous Move" etc. Instead of pushing back all moved pieces, you can use this item to reset the board and active colour. "White's turn" The white player has to do the next move. "Black's turn" The black player has to do the next move. Config ------ You can save all settings in a configuration-file. "Load" Loads a configuration and activates it. "Save" Saves the actual settings as defaults. The program will use these settings at the next start. The settings are stored in the file VChess.config, or if the drawer Configs exists, in this drawer. "Save As" With this function you can save additional configurations, which you can load and activate again with "Config/Load" . "Last Saved" This function activates the configuration which was used at the start of the program, or which was saved with "Save". This is the file named Configs/VChess.config or VChess.config. "Reset to defaults" Resets all settings to defaults. Extras ------ "Store this Pos." Stores the current position. You can use this function in Playing- and Buildup-Mode. This is very useful, if you try to solve a chess task, or to develop new openings or if you are playing letter chess (exchanging single moves with a friend by letters, EMail or phone.) "Restore old Pos." Restores the stored position. "Set White's Aggr., Set Black's Aggr." With these two items you can change the aggression of the computer. If you enter the number N, then this means that the computer will assign the pieces of his opponent a new value: NewValue:=(RealValue + (RealValue*N/100). The values of his own pieces remain unchanged. So, if you entered a positive value, then the computer will give the opposite pieces a greater value than his own pieces, and will play a more aggressive game, maybe he will try to exchange a pawn of his own with a pawn of his opponent. If you enter a negative value, then the computer will play a less aggressive game, he will try to prevent the exchange of equal pieces. White's aggression is only important if the computers plays with the white pieces. If the computer plays with the black pieces, you have to use "Set Black's Aggr.". You will only have to use both items, if the computer plays with white and black pieces (Playmode Amiga-Amiga). So you can see what happens, if a aggressive computer player plays again an un-aggressive computer player. "Valuation" The computer will evaluate the current position. But this valuation is only an approximation, only the pieces on the board and their strategic positions are taken into account. It is not regarded if one chessman can capture an other chessman, or if a mate will occur after some moves. "Break" With this function you can force the computer to make his move. Useful if you are not very patient. "Undo last Move" With this function you can take back the last move. The chess-rules don't allows this, but I think some people will use this function sometimes. Of course you can take back many moves by selecting this function again and again. "Redo the Move" The move which you have taken back is again performed. "Pause" This function stops the chess clocks, and sets the thinking-process to a very low priority, so no computing-power is consumed. The break automatically ends, if an user input is registered. "Set Task Pri." With this function you can modify the priority of this program. Generally you will not need this function. Because a permanent modification of priority is not useful, it is not stored in configuration files. At the next start of VChess, the priority will be again zero (if started from workbench) or equal to the priority of the shell-process (if started from shell). The priority of the thinking-process is always one point lower than the priority of the main process. So user input is always processed in real-time. "Create Icons ?" With this item you can select if the program shall create icon for saved files. If the program has to make Icons, then one of the following icons is copied if it exist, or defaults are used. Filetype Used Icon (if it exists) ------------------------------------------ Game "Icons/GameIcon", "GameIcon", "Games/Game1", "Game1" Configuration "Icons/ConfigIcon", "ConfigIcon", "Configs/VChess.config", "VChess.config"; Textfile "Icons/TextIcon", "TextIcon", "Text/Text1", "Text1" Additional, if using Locale.library, for each filetype there are two language-dependant Iconnames. For "deutsch" these are: Filetype Icons for deutsch language (if it exists) ------------------------------------------ Game "Spiele/Spiel1", "Spiel1" Configuration "Configs/VChess.config", "VChess.config"; Textfile "Texte/Text1", "Text1" "Use Openings ?" If this item is marked, then the computer will use the Opening-library. (Please don't be confused, the Opening-library is not a Library like ReqTools.library, but just a collection of openings.) The filename of this library is VChessOpenings. This file must reside in the same directory as the program VChess (PROGDIR:). (I think there is no reason to hide it in sub-directories, or to use more than one Opening-library.) Using this library means that the computer needs no thinking time for the first moves, and the playing-strength of the computer is greater. Of course the library can only be used, if the game starts from initial position with white as the active player. Note that the opening-library is loaded if playing starts. This means, if you deactivate this item before you start playing, the library will not be loaded in memory. This will save some memory, so that it may be possible to use VChess on Amigas with only 512 K. "Teaching ?" With this function you can switch on a teaching-mode. If you are playing and it is your turn, and you click on a piece, then all squares on which the chessman can be moved are marked. This is very useful for children learning chess. "Sound ?" If this item is activated, then a sound is generated when the computer makes its move. "PlayMode" With the following four items you can modify the thinking-process of the computer. In the actual release 3.5 of VChess only the subitem "Extend" has a function, the other three items are internally deactivated. I have not removed them, because it is possible that they will get a function in a new release of VChess again. "Reduce ?" If this item is marked, then the computer will cut some (bad) branches of the chess tree to save time. For solving for mate this may be harmful, so if you select "Project/SolveForMate" then no branches are cut. If you play letter chess, and you give the computer some hours for thinking, then it may be useful to de-select this item. Attention: Currently, in release 3.5 this item has no function! "Extend ?" If this item is marked, then the computer will extend some branches of the chess tree, especially capture-sequences and check-offers. In normal playing, such a depth-extension is always useful, so this function is always activated internally in normal playmode. If solving for mate, depth-extension is useful too in most cases, so this item should be activated too. But in special cases, if you are sure that the checkmate is not a result of many check-offers, then it may be useful to deactivate this item. "Estimate ?" If this item is marked, then the computer will try to estimate if the last nodes in the tree are good or bad moves. (In a given time period, the computer can only calculate some half moves deep, for example five half moves. In the last half move it may be possible for a player to capture a Rook with a Queen. To decide, if this is a very good move (win a Rook) or a very bad move (win a rook, but lose the queen) the computer has to calculate the next half move of the opponent. But there is not enough time to do this, and in the next half move there will be with great probability a similar problem. So the computer have to cut the movechain, and can only guess or estimate if the last move in the chain is a good or bad move.) Attention: Currently, in release 3.5 this item has no function! "Strategy ?" If this item is marked, then the computer will take into account strategy, for example it is generally better if the Knight resides in the centre of the board. This item should always be marked, because playing without strategy will result in a very low playing-strength. Attention: Currently, in release 3.5 this item has no function! "Random" With this item you can make the play of the computer more interesting. Principle the computer would do always the same move in the same situation, because he calculates the best move. But to the result of the calculation a random number is added. With this function you can select the upper border of this number. 100 points are equal to the (virtual) win of a pawn. "0, 25, 50, 100" The random value is in the range between zero and 0, 25, 50 or 100. If you select "0", then the computer always will do the same move in the same situation. If you select "50", then to each calculated gain a random number between 0 and 50 is added. In late endgame, i.e. King vs (King+Bishop+Knight), it may be usefull to select a smaller Random-Value, i.e. less than 16. Otherwise, with Random-Value >=25, it may occur that the Computer can not force a mate in less than 50 moves. Large Random-Values in conjunction with small thinking-time in Endgame sometimes gives strange results, because the computer will always try to prevent a repetition of a position. "Custom" With this function you can enter a custom upper boundary for the random number. If the boundary is high, then the playing-strength of the computer will decrease. But maybe this is what you want. "Blinken" "0, 1, 3, 5" If pieces are moved, they blink a few times. So you better can see which move the computer makes. You can select between 0 to 5 blinks. This blinking is also used if you have loaded a game and replays it with "Replay" or "Next Move". Openings -------- With this menu you can modify the opening-library. Most people can ignore this menu. "Add this Game" If you select this item, then the current game is added to the opening-library. With this function you can expand the opening-library. (To create a new one, just delete the file VChessOpenings before starting VChess.) There is room for 48 half moves of a game in the opening-library. If the current game has more moves, the remainder is ignored. Of course you can add only regular games, this means games started from their initial position and white as active player. If you will add an opening from a chess book, it is recommended to do it in this way: Select "Players/Human-Human" and now "Project/NewGame". Now you can play the opening from the book, and then select this item to add it to the library. You have to enter the name of this opening, the name may not have more than 32 characters. If this name already exists, you will get an error message. Try another name. (Currently all names of openings are German names. The reason is that I have only German chess books, and it's difficult to find good translations for the names.) If an opening, which you add to the library is already in this library, but with another name, then there are two cases: If the opening in the library contains more moves, then an error message is displayed and your opening is not saved. But if your opening is bigger, then your opening will over write the old one. You should only add your own openings (games) to the library if you are a very strong player, because an opening should contain only very strong moves. If there is only one weak move, then the computer may do this weak move and the playing-strength decreases. Please note the following: If you want to add new entries to the Opening-Library, it is necessary to load the existing library in memory before you add new entries. So ensure that the menu item "Extras/Use Openings" is on before you select "Project/New Game" to enter a new Opening. In this case the existing Opening-Library is loaded automatically. "Delete actual" With this function you can delete the actual opening, this means this one which is just used by the computer. This can be useful, if you are playing against the computer and notice that the computer uses a wrong or weak opening. "Delete by name" With this function you can delete an opening by name. "Dump to File" This function writes all openings to a file in algebraic notation. You can look at this file with a text viewer, or print it out. "Save all Entries" If you select this item, then the opening-library is saved. If you forgot this, all modifications are lost. Now, at the end of this text, some general remarks: Errors or bugs in VChess I'm sure that there are some small bugs in this version of VChess. Don't hesitate to write to me if you find bugs or have comments about VChess. But please don't expect a (long) response to each of your short letters. I am studying physics, so I don't have much free time to answer your letters. New releases of VChess There are still some things which may be improved. Transfering the thinking-algorithm from Oberon to Assembler would increase the calculating-power by a factor 3. And a bigger Opening-library, (with a new data-structure to save space) would be nice, a large Chess-Database too. And an ARexx-port may be useful too. But I am not sure if there will be new releases of VChess on the Amiga. Til now (1.12.1995) only 58 VChess-user paid there contribution. This is not enough. Perhaps the playing-strength was too low in former releases of VChess, this may be the reason why only so few people paid there contribution. But if not much more people will pay for this release, then I think that I must stop the furher development on the Amiga. Maybe there will be a transformation of VChess on a Pentium- or RISC-CPU in the far away future. But that release will not be Shareware again! VChess and other languages It is allowed to make verbatim translations of this documentation or to produce new catalog files for other languages. You can distribute these translations (together with the VChess-package) in your own country without asking me for permission, but please don't make free, shortened or buggy translations. You should only make translations, if you are really using VChess, so that you can verify your work. (I think no translation is better than a bad one.) Making a translation is a lot of work, so it may be useful to contact me before starting with the translation. Maybe there is already a new release of VChess, or someone else has already made the desired translation. If you have produced a really good translation, then you can send it to me. Maybe I will add it to the VChess-package. By using the Locale.library, VChess can adapt itself to other languages if running under OS2.1+. Currently english, deutsch, français and svenska are supported. But the file VChess.cd is part of this package. So if you have the program CatComp (© CBM) (or a FD-Program which works like CatComp) and you know how to use CatComp, then you can produce Catalogfiles for your preferred language. Although English is the built-in language of VChess, there exists an English VChess.ct-file. You can use this (together with CatComp and locale.library) to adapt the English text to your own desire. (Modify the VChess.ct-file, use CatComp to create the VChess.catalog-file (Usage: CatComp VChess.cd TRANSLATION VChess.ct CATALOG VChess.catalog) and then copy the VChess.catalog-file to Catalogs/english/VChess.catalog. If you now start VChess again (after a reset or "avail flush"), you should get the new text.) If you modify Catalog-translations (VChess.ct), or create new translations, please note this: If a menu item should get a short-cut, insert at the beginning of the text string the letter for the short-cut and the characters "\x00". For example, to create a short-cut for the menu item "New Game", create this string: "P\x00Fresh Game". This will give the item text "Fresh Game" with the short-cut "P" (Play). (This is the way, which Nico Francois uses to create short-cuts for ReqToolsPrefs.) The advantage is, that you can create Short-cuts for any number of items. But be careful, only insert Short-cut-Characters in Item text or Sub-item text, but not in other strings! (Unfortunately, there is a little problem: If a menu item has no short-cut, and the text is only one character long, this may look like an item with a short-cut but no text. To prevent this, you can insert an additional space, or append an additional "\x00". So to create an item without a short-cut and with the text "1" you can type " 1", "1 " or "1\x00". (If the item has a short- cut, then there is no problem, you can type for example "1\x001". This will result to an item with text "1" and short-cut "1".)) In the Catalog-translations, there are some strings which contains vertical bars, "|". These characters have a special meaning for ReqTools.library. They divide the text for different response-gadgets, so don't delete these characters. If such a string contains any number of these characters, the number must remain constant. Some strings may contain the characters "%ld". This is used to insert a number, so don't delete this. Some strings contain "\x20". This is only a space, you may delete it, but this is not recommended. Some strings must have a special length, look at the file VChess.cd to read this length. (/6/8) for example means, that the minimum length is 6 characters, and maximum length is 8 characters. Some strings contain a "\n". This is only to write the following text on a new line. Most strings have no limitations in length, but if you create too long strings, it may look ugly. And now I hope that you enjoy this game. Stefan Salewski, December 1995