VChess 2.0 - A Chessgame for Amiga-Computers Copyright © 1993 by Stefan Salewski All Rights Reserved Preface to the English Documentation This text should be a verbatin translation of the german original documentation. If there are any differences between the german and this english documentation, then of course the german text has precedence! If you read this text, you will notice that my english is very strange sometimes. But I hope that everybody can understand it. Of course, a better english documentation (a new translation of the german text, or a corrected version of this one) is always wellcome. Copyright and other legal stuff VChess is NOT a PD-Program, but Shareware! VChess and all other files of this package (exept the libraries) are Copyright © 1993 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 2.0-Package contains the following files: File Size Meaning -------------------------------------------------------------------------- VChess 97564 Mainprogram, V2.0 VChessOpenings 40588 Opening-Library, 138 Openings VChess.doc 35290 English Documentation VChess.dok 44030 German Documentation CustomColors1.config 1668 Example-Configuration OneWindow.config 1668 Example-Configuration Games/A.Geller(UdSSR)-H.Palm(D) 592 Saved Game Games/Game1 480 Saved Game Games/Game2 432 Saved Game Text/Text1 39 Icon for Textfiles Text/A.Geller(UdSSR)-H.Palm(D) 1116 Example-Movelist Libs/GarbageCollector.library 9820 © Fridtjof Siebert, V 3.0 (Libs/ReqTools.library 38104 © Nico Francois, V 38.1022) 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 as one whole. (It is allowed to distribute this package without ReqTools.library, because I think nearly everybody have it already, or to replace the libraries with newer releases.) 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 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 floppydisk and copying efforts. Nobody may take more than US$ 5 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$1 per megabyte. This means, that nobody may sell a CD-ROM containing VChess and 100 Megabyte other software for a price greater than US$100. Distribution of VChees together with commercial software is forbidden. Of course it is reserved to 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 much money. But if you have paid more than US$5, this was too much. Try to get your money back, and tell me about it. Introduction VChess is written fully in Oberon language, and was developped on an Amiga 3000 using Amiga Oberon V 3.0 (© 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) and GarbageCollector.library (© Fridtjof Siebert). Both libraries are freely distributable. If the ReqTools.library is not part of this package, you can find it for example on Fish-794. The GarbageCollector.library should be part of this package. (Please note that for both libraries there exists Preferences-Editors to modify the behaviour of the libraries. You can find these on Fish-794 and AMOK-75. (AMOK is a german FD-Libray with Amiga FD-Software written in Oberon or Modula.) VChess needs not much memory. Without the use of the Opening-library, it should be possible to use VChess on an Amiga with only 512 K. The normal stacksize of 4096 Byte should be enough too. Installation Copy, if not already installed, the GarbageCollector.library and 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 harddisk, it is best to copy the whole VChess-Drawer to harddisk, because this drawer contains the Opening-Library and other things. Starting VChess The easyest way is to start VChess 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 in the Drawer of Vhess, then the program uses this file for the startup-configuration, otherwise defauls are used. 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 three windows. The big one with the chessboard is the main-window. The both other windows are only help-windows for showing some information. If the mainwindow 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 colors, fonts and screen-resolution can be changed.) Please select now 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 stones against the computer. To move a stone, simple click on it with the left mousebutton. Now this stone is marked. Now click on the destination-square. If this was a legal move, the stone will move from source to destination, and the computer will answer with his 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 coure you can resize the windows, or close the helpwindows. Shareware-Contribution I started the development of VChess in summer 1992, and now at the end of October 1993 version 2.0 is finally (nearly) finished. I guess, that this program took nearly thousand hours of work until 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 work this time somewhere else. And last not least the costs that the development of software causes are not neglectible. At the beginning I planed to sell VChess in a comercial way. But because it is even by a comercial distribution 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 2.0 is true shareware. 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 2.0. 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 15 US-Dollar to the following address: Stefan Salewski Stolper Weg 3 D-21680 Stade (Germany) Please compare this adress with the text that you see if you select the menuitem "Project/About". If there are any differences in the adresses, this means that somebody has made illegal modifications. In this case try to get a clean, unmodified version of VChess. I think the best way is if you send me the money in cash. If you send a check, postal money order or something like that it may be very expensive or impossible to change it to german money. All people, who send me the contribution, will get a postcard from me, so that they know that I really got the money. If you should not get this postcard after six weeks, then something went wrong. (Please don't forget to give me your FULL postal address.) Before I go on describing the use of VChess, I will explain two terms: To click on a stone or square: Move the mousepointer over the stone (chessman) or square, and then press and release the left mousebutton. Menu: This means always the Pull-Down-Menu, which you see if you press the right mousebutton. Playing-Strength Of course it is a big difference if you play with a 68000- or 68040-processor. On my A3000 I lost 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 as the computer. I can't make precise statements about it, because I have too many possibilities to compare VChess with. But I think that the playing-strength is not very great. The playing-algorithmen is fully a development of my own, and I spent "only" 400 hours for it. I think that other people thought much more about it. The best is if you test the playing-strength yourself. I think, if you loose more than 50% of all games, then the playing-strength is big enough for you. Note: If you would loose nearly every game, it would be very frustrating. Of course, if the playing-strength would be very high, it would be possible to degrade it artifically. But if you win againt the computer, but you know that the computer have played intentional bad, you will not be very glad about your win. If you think that the playing-strength is too low, you can tell it to me. If many people think so, I will try to increase it. For my own the playing-strength is currently big enougth. The Use of VChess After starting VChess, you will see the mainwindow, and perhaps the two other windows. The behaviour of the windows is like the windows of the Workbench. You can move, resize and close it. If you close the mainwindow, the program will terminate. Please note that you can only do menu-operations if the mainwindow (the one with the chessboard) is is active one. To move a stone, simple click on it and then on the destination square. (To do a rochade, simple move the king. The rook is moved automatically.) If you clicked on a stone, 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. W: B f1-b5" means, that White moves the Bishop from square f1 to square b5, and that this is the second move of White. The letters behind the colon have the following meanings: P Pawn k Knight B Bishop R Rook Q Queen K King The "P" for a move of a pawn is substituted by a space in most cases. 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 P e4xd5 50" means the following: If the pawn on square e4 would hit the stone on square d5, this would result for the active player to a gain of one half pawn. The characters "3-3" describe the deep of thinking, in this example three halfmoves. (A halfmove is a move of a white or a black stone.) 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 halfmoves 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 halfmoves deep, the computer must process 30^3=30*30*30=27000 halfmoves. You can think about it as the computer would build a tree for each possible move. The first halfmove 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 don't have to be totally simetric, some branches can be longer (more nodes) and others shorter. Because of this you will see often "3-4" instead of "3-3". This means that the computer has generated a tree for this move, and that all branches of this tree have 3 nodes, but some interesting or important branches have four nodes. Playing- and Build-up-Mode There are two modes: Playing-Mode, and Build-up-Mode. In the Build-up-Mode you can move stones without any restrictions. In Playing-Mode you can do only legal moves, and the chessclocks run. You should note the following: If you change the board in Build-up-Mode, you may destroy the current or loaded game. And then you can't save it (from the beginning) any more. 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. Chessclocks At the top of the boardwindow you can see three chessclocks. 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 the mainwindow is active, you can select one of the following functions with the right mousebutton: Project New Game With this item you start a new game. All stones were build up at their initial position, and it is white's turn. Start Game With this item you also start playing, but the stones 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. You can use this mode for solving chess-tasks, but don't exspect too much about this: To find a mate which the computer can't see in the range of five halfmoves, much time is needed to find it. Stop Game Terminates the current game. 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 Build-Up-Mode and in Playing-Mode. But you can't save, if there is no legal game on the board. 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. Or if you load a game with "Set Up/Load Game" and you want to print the movelist of this game, then you have to select the Menuitem "Set Up/Last Move" before you can select "Project/Print Movelist" to print the game. Save Movelist The actual game is saved as a textfile in algebraic notation. Print Movelist The actual game is printed as a textfile in algebraic notation. Give Up You can use this item, if you play against the computer, and you want to give up. Offer Remis Use this to propose a remis. About This item displays the adress of the author of VChess. Quit Terminates the game. Players Human-Human Two human players play against each other. Human-Amiga A human player plays with the white stones against the computer. Amiga-Human The computer plays with the white stones 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. 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, the computer will adapt the thinkingtime to the thinkingtime of the human player. Exact ? If this item is marked, the computer strictly regards the given maximum thinkingtime. If this item is not marked, then the computer will sometimes think a little bit longer, but in average will regard the given thinkingtime. 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. Rotate 90+, 180, 90- With these items you can rotate the board. Change Colors White Stones, Black Stones, White Squares, Black Squares With these items you can change the colors, which are used to draw the squares and stones. Simple click on the desired color, and then on "OK". You can only select one color at a time, for example the color of the white stones. If you are using a custom screen, you can use the sliders to change the color-values too. But if you play on a public- or workbench-screen, it's better to select only colors, and not to change color-values. Change Patterns White Stones, Black Stones, White Squares, Black Squares, With these items you can change the patterns, which are used for drawing squares and stones. If the display looks ugly on your screen, you should try other colors and patterns. The defaults look nice on an hires-interlace-screen with OS2.0-colors, but if you have to play on a screen with lower resolution, it's a good idea to try other colors. 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 stones and use them to build up a position. Also you can move stones on the border to throw them away. In playing-mode the border has no function. Coordinates ? If you turn of coordinates, you have more room for the stones. But I think this is only necessary if you have to play on a screen with very low resolution. Chess Clock ? You can turn of the clock. If you have turned of coordinates, clock is always turned of too. Squareframes White ?, Black ? If one of this item is marked, a border is drawn around the squares. You can only see this border, if the squares are displayed not monochrome. 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 colors. It is possible to use a screen with only two colors, but this will not look very nice. More than four colors are not recommended, because VChess currently don't use more than four colors. Please keep in mind, that screenresolution and number of colors may affect the calculatingspeed of your computer. For example on my A3000 calculatingspeed 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 horizontal resolution of only 320 points. Screenfont If you play on a custom screen, 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 windows. Selection of a proportional font may give strange results. Set Up You can access this menu only if you are in build-up-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. First Move Jumps to the first (really zerost) move of the actual game. Last Move Jumps to the last move of the actual game. Next Move The next move is performed. Previous Move Takes back the last move. Clear Board All stones are removed from the board. (Caution: This function and the next three functions will destroy the actual game, so you can't save it any more. Bould Up All stones are moved to their start-position. 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. 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 VChess.config. Reset to defaults Resets all settings to defaults. Extras Help 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 "Help" if the computer is the active player, to see how the computer valuates the different moves. Sort This function is identical to help, but the display is sorted. The best move is always displayed at the top of the list. Valuation The computer will valuate the current position. But this valuation is only an approximation, only the stones on the board and their strategic positions are taken into account. It is not regarded if one stone can capture an other stone, 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 allow 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 chessclocks, and sets the thinking-process to a very low priority, so no computing-power is consumed. The break automatically end, if an userinput 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 mainprocess. So userinput 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 the following icons are copied if they exist, or defaults are used. Filetype Used Icon (if it exists) ------------------------------------------ Game Game1 or Games/Game1 Configuration VChess.config Textfile Text1 or Text/Text1 Use Openings ? If this item is marked, then the computer will use the openings-library. The filename of this library is VChessOpenings. Using this library means that the computer needs no thinkingtime 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 stone, then all squares on which the stone 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. 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 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. 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 stones are moved, they blink some 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 "Next Move" or "Last 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. There is only room for 32 halfmoves 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 chessbook, 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 errormessage. Try another name. (Currently all names of openings are german names. The reason is that I have only german chessbooks, and it's diffical to find good translations for the names.) If an opening, which you will 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 errormessage is displayed and your opening is not saved. But if your opening is bigger, then your opening will overwrite the old one. You should only add your own openings (games) to the library if you are a very strong player, because an opening may 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 menuitem "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 notices 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 textwiever, or print it out. Save new 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 I be 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 to VChess. But please don't expect a (long) response to each of your short letter. I am studying physics, so I have not much free time to answer your letters. New releases of VChess There are much things which may be improved. So with great probability there will be a new version of VChess in some time. If this version will be freely distributable again then it can be found on great FD-Libraries like the FISH-Library. Of course it depends on the Shareware-contributions if or if not the next release of VChess will be freely distributable. If I get only very few contributions, then it may be necessary to distribute release 3.0 of VChess as commercial software. But in this case all people who has paid their contribution will have to pay not more than the difference between the shareware-contribution and the price in a software-shop. If for example version 3.0 of VChess is sold for $25, then all people who paid there contribution will have to pay only $10 for release 3.0. But of course I hope that many people will pay their contributions, so that all new releases of VChess will be again freely distributable. And now I hope that you enjoy this game. Stefan Salewski, 08 Nov 1993