If you want to know all about Dabbaba, you should first read dabbaba.txt, that covers the january 1996 version. This readme.txt file gives you the updates since then. ******************** Dabbaba version Oct. 14 1996 ************************ ========================================================================== Dabbaba now uses piece-lists, and this has speeded move-generation and pawn-evaluation up, something like 20% compared to the aug.-version. Dabbaba now also knows the bishop pair, know it is good to trade off when ahead (and not to trade off when behind), tries to get the queen close to the enemy king and knows much more about where to place its rooks (see below). The pawnevaluation has been improved a little. I have removed something bad working 'advanced' killer rules, increasing the speed with 20%. Don't remember killers that captures the piece that has just muved gave 3%. A better pre-order of moves gave 10%. Pawnmoves attacking pieces are now selektive moves and slows down Dabbaba with 12% (but makes it play better!). But most important a lot of quiet moves deep in the search has been removed, so only the very best are now tried, and this has increased the speed with 400%!!! So this version is 4-5 times faster than the august-version! The good, old Colditz-test gives Dabbaba (486 50 Mhz) a tactical rating of 1830. Some other changes are: rooks on open files, block c-pawns less, play more 1.e4, keep g-pawn on 2/3 row, kingsafety: pawn in front of king most important to be there. During gameplay the board is bigger. While running testpositions in files, it is now possible to create a file (dabbaba.trc) showing which moves Dabbaba found at a given time. Just answer 1(=yes) to the question if you want the file. It is also possible to go on to the next position if the right move is found or to use all the alotted time on the position. Just answer the question. The main menu is now easy and light and can be turned back to extended use with the W (whole menu). Levels of play: Is now much easier for the user, as you simply can decide how many seconds Dabbaba should use for each move instead of deciding the search depth (brute force, selektiv and check-search). If you want to use Dabbaba the old way, give Dabbaba zero seconds pr. move, and the search depths appear in the menu. With x seconds pr. move, Dabbaba will max. use 20% of the time in the matesearch. Dabbaba will terminate the normal search if more than 90% of the time is used when it has finished examining a move in a given iteration. It may move much earlier, as Dabbaba won't start a new iteration if more than 30% of the time is used. This is because, that all the remaining 70% of the time probably will be used on the first move in the next iteration - the move that already is found as the best move. Dabbaba shows how deep in the search it was when the timeout occured. Comments when version 1996 Aug. 20 was released (about errors in version 1996 july 23.) =============================================== King safety didn't work at all. Ghost-rooks could occur in the corners, if a rook ready for castle was moved. Chessvariants where the queen is Archbishop & Chancellor had an error, as the queens new value was given to the knight. These errors are now corrected. Comments when version 1996 july 23 was released. =============================================== Dabbaba is now tactically much stronger. It fx solves a mate in 12 moves in a special testposition in 0,63 second (see the mate-search demo later). Dabbaba also understands draws by simpel repetition of moves (see the Rg7+ position). But only during calculating a move, not during playing a game. Dabbaba now has a simple knowledge of king safety. The opening tips have also been improved, and Dabbaba now plays 'random' in the opening. Selfplay don't loop now, and the board is shown the first 56 moves. INFO during gameplay can be turned on/off with the info-command. Turn it off if you don't want the information and the scrolling of the chessboard. You can get the help-menu by typing help or ? during the game. Further information in the future ================================= Send your e-mail address to me (jensbaek@silkeborg.bib.dk) and you may receive information about Dabbaba in the future. Where should the rooks be moved to? =================================== This is very difficult to tell a program, because moving the rooks has much with long range planning to do. During pawn-evaluation a bonus is given, if a rook is on the same file as a weak opponents pawn. New bonus's are given for moving the rooks up the board, especially row 7 and 8, for having the rooks connected; especially on a file, and for having a rook on the same row as the opponents king. move-now ======== If you press a key while Dabbaba is computing a move, Dabbaba will move when it has finished calculating its current move. If this is done during selfplay or running a testfile, these functions will be cancelled. menu Special Options ==================== Some new information can be found here (most for my own use). Running testfiles ================= When asked for a position number, you may now type in a negative number. fx. will -40 skip the first 40 positions in the file and start calculate from position 41. Dabbaba still only instantly show how 50 positions are solved, and now it stops after calculating 50 positions. You are asked if you want a file (dabbaba.trc) to be written with the moves Dabbaba has found at given times during the search. If a mate is found, the position is left immediately. If the right move is found after iteration 2 or later, the position is considered solved and no further iterations are done if you have answered yes to leave the position in this case. Pawn-evaluation =============== Dabbaba now knows something about isolated pawns, double pawns, passed pawns, weak pawns on halfopen files. Unfortunately this takes some time, but it is important. During gameplay you can press 'p' and see how each pawn is evaluated. Variants ======== An article of Ralph Betza in Eteroscacco has inspired me to add 4 new variants to Dabbaba. Transpositions ============== This has an error, so leave tpo2 set to 99 (off) as it is when you start Dabbaba. Tester ====== I have got Alastair Scott from UK as 'an official tester' of Dabbaba. Torben Osted has given me some games played against ArcChess. The old levels ============== (Before move-in-x-seconds was made, the old default was (3,3,2).) If the startlevel (3,3,2) is too slow, you can reduce the numbers. I recommend for level (a,b,c), that a+b is even, c is even and b>0. A little difficult to explain why, but it has something to do with the I- position (Nxf7??). I expect it is quite easy to repair, but just haven't done it yet. Perhaps (4,4,0) is better than (3,3,4). (4,4,2) certainly is, but it is too slow. You may change the 'selektiv search dynamic limit' from 20 to 24 which may increase the speed of Dabbaba at the cost of trying fewer quiet moves. Set to 24 it solves the ca. 80 positions in the file LARS440 at level (4,4,0) in ca. 25 minutes (in the new version it takes more than an hour; mainly because of the pawn evaluation). Many of these problems are very nice combinations! The name Dabbaba ================ A few persons has asked me about the name Dabbaba. The program also plays variants of chess; fx where the knights are Nightriders (making long moves). A dabbaba is another piece that moves in an unusual way. The dabbaba is used in one of the variants in the Dabbaba program. The Matesearch ============== The matesearch is an important feature. Dabbaba starts its computing of a move by following many lines of checks and hopes to find a mate or a good capture. Do this to see what it can do in a few minutes: * Set the level to 180 seconds pr. move * choose 7: chesspositions in files. * choose M for matesrch file. * choose 0 for all positions. * choose 1 to pause at each position * choose 0 not to make a discfile * choose 1 to exit the position when the right move is found - and enjoy what Dabbaba manages to find! The matesearch is started up to 3 times; each time going deeper (8, 16 and 24 ply) and considering more moves. A maximum number of nodes are searched depending on the brute force depth you have chosen: depth 1: 10.000 nodes depth 2: 30.000 nodes depth 3: 50.000 nodes etc. (assuming the matesearch-factor not is changed from the value of 10). If more than 1/3 of this maximum number of nodes have been searched, no further matesearch will be started. * if move-in-x-seconds is used, a max. of 20% of the time is used in the matesearch, and the matesearch-factor only decides if a matesearch is made or not (set it to zero if you don't want a matesearch). J - magic number. ================ What is this? Try this demo: Set magic number to 8 * choose 5 for chesspositions * choose 5 for the mate in 12 position now you can see the little silly gimmick. * type X to return. * set magic number to 7. * choose 2 to run - and see how the black king is hunted (this is also funny with the Morphy-position). It takes about a minute to hunt the king. * set magic number to 0 again. * choose 2 to run again, and it is now 100 times faster without the gimmick. Other 'secret' values are used by myself while developing Dabbaba. Those with a text in () are intended for my own use. Magic=2 makes Dabbaba also consider promotion to bishop and rook. C-programming ============= I'm not an expert in C-programming. How do I issue a 'EDIT DABBABA.TXT'? How do I avoid the scrolling? - and is still able to receive keyboard input from the user? How do I use the mouse? If someone has a little program that shows these things I would like to see it. I have a 486, but my compiler can only generate 386-code. Will Dabbaba be faster if it is compiled with a compiler that generates 486-code? Will Pentium-owners benefit even more if Dabbaba is compiled to produce pentium-code? Does the compiler have to have a special facility to tell, in which parts of Dabbaba the time is spent? Does tools exist, that can take the c-source and generate cross-reference lists or diagrams? known errors ============ When you return to the main menu from gameplay you may get a message like this: "Recommended: leave Dabbaba and restart. /Jens". To remind you that this has happened, an asterisk will appear like this in the main menu: "! Exit Dabbaba *". You can see this if you choose the Morphy-position, go into gameplay and press G for a few moves and then X to leave gameplay. It has something to do with making moves with check or promotion.... I'm not sure what is happening. If you continue after this warning, you may observe Dabbaba play silly moves (Rh1-g1, Rg1-h1 etc.). To let you know precisely when this happens, I have let a star appear in 'your*move' and after the computers moves as e2-e4*. If you strongly want to avoid this error, I recommend to restart Dabbaba before each game. Promotion moves like b2xa1Q may occur in opposite direction: b2xc3Q. But the game continues ok... Bad moves like the i-position (Nxf7?) may occur. If the search is one ply deeper it should disappear. Dabbaba don't recognize promotionmoves in solutions as correct moves (fx the Lot of knights-position (b7-b8N) in the menu and in the matesrch-file). Promotiomoves are not looking right in dabbaba.trc. I have a little problem with end-of-file of the testfiles, so so far the last line in the file has to start with '#x'.