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 etc. since then. ******************** Dabbaba version Feb. 25 1998 ************************ ========================================================================== New things in Dabbaba --------------------- 1) Many small things have been corrected / optimized. 2) New commands for new-game, beep-sound on/off and auto232. 3) Forced moves are now played immediately. 4) Better knowledge about hanging pawns (and rooks on these files). 5) The king is used to attack the opponent, when Dabbaba is a rook ahead, and bonus is given for getting the opponents king near the edge/corner. 6) A tracefile GAMEINFO.TRC is produced during gameplay. 7) Dabbaba is now an expert on insufficient material; see the file INSUFMAT.EPD that is a little 'article' with many testpositions. 8) A new kind of level 'mate in xx moves' is now implemented. 9) The kingsafety-function is now improved a little. A) Producing a file GAMES.TXT can now be turned on. It will contain the game in simple notation as e2e4 e7e5 g1f3 b8c6 etc. The Chessbd-program can read this simple file and produce a real pgn-file. B) Dabbaba now supports auto232 (it can automatic play a number of games by connecting two PCs by the serial port. Each PC has a chessprogram running.). The required files are supplied (auto232.bat and nonauto.com). C) Dabbaba played autumn 1997 in Torsten Schoops tournament. See SCHOOP.PGN for comments, games etc. Chessbd can play the games directly from this file. D) The shortest mate should now be found, as Dabbaba examines an extra iteration when a mate is found. E) Underpromotion to rook and bishop is only considered, when the score so far is worse than draw or a stalemateposition has been seen during the search. F) Dabbaba tries to avoid giving a piece for 3 pawns; this is often bad. G) Rules for develop the queen in the opening are improved. H) Dabbaba avoids playing 1.e4,Nf6 as black. Test results on my 233 Mhz Pentium II (PC-speedfactor = 91). ----------------------------------------------------------- Parameters: random=0. Compiletimeoptions TURBO-1 & TURBO-2 is turned off. (that means all errorchecking taking 5% of the time is turned on). Exit when Max Sec. right seconds pr. move is Seconds for TEST move found Solved used a move Comment Larsen1 1-50 60 y 42/50 631 57 (-3,19,26,29,32,34,38,50) Larsen1 51-100 60 y 44/50 528 56 (-71,77,92,96,99,100) Colditz 60 y 25/30 357 57 (-12,16,20,27,30) bt2630 60 y 5/30 1211 59 (8,9,12,16,19) lct2 60 y 7/35 1212 59 (5,7,14,16,18,23,28) matesrch 60 y 18/18 41 9 (nr. 18 IS solved) timetest (4,8,0) n (22) 666 145 ******************** Dabbaba version Oct. 04 1997 ************************ ========================================================================== New things in Dabbaba --------------------- 1) Many small things have been corrected / optimized. 2) Time used so far can now be seen during a game. 3) Dabbaba is now more aware of how much time is used, but... 4) Dabbaba will always search at least 2 iterations (unless a mate is found), and on my old 486 50Mhz I have in a rare case seen this last for 6 minutes! So even on a Pentium 200Mhz, that is 9 times faster, a move may take more than a half minute even though Dabbaba is set to play faster. I hope to optimize the search in the future. This minimumsearch is used to eliminate pseudomoves in the variants. 5) A much better understanding of quiet positions. 6) Dabbaba starts with a speed-test to measure the speed of the PC that it is running on. The result can be seen in '6. Menu: Special options', and it is used to set up suiting parameters for the mate-search. 7) The matesearch has been slightly improved. (the Bc4xf7+ mate in 9 (see the matesrch-file) is now solved). 8) A new kind of level 'game in xx minutes' is now implemented. Dabbaba guesses there are 10-30 moves left in the game depending on how much material there are on the board. The remaining time is divided by that number of moves to set a timelimit for the next move. Besides it plays gradually faster in the opening when black has more than 5 undeveloped pieces. It is silly to use 3 minutes on 1.e2-e4. Dabbaba will never claim a win/loss due to timeforfeit. 9) An everplay function plays games forever. Black and white plays with a little difference in their strategy (I determine this change), and I use the everplay to see what strategy is best... Right now white has a selektive depth = 8 (which is what Dabbaba uses now, where a depth = 4 was used in the 1996 version), and black has a depth = 6. The random-function should ensure different openings in the games. If anyone runs a big number of games I would like to know the result. The new level 'game in x minutes' must be used. Don't play faster than 'game in 3 minutes' on a Pentium 200 Mhz. The current position and total score is instantly shown. A game is stopped after 80 moves. If the score is bigger than 300 (3 pawns), the game is considered as a full win (1.00). If the score is fx 150, white gets 150/300 = 0.5, and the rest 300-150=150 is divided equal this way: 150/2=75 gives 75/300=0.25 to each player. So white gets 0.75 and black gets 0.25. This is the most fair formula I have come up with so far. A) An old error has been corrected: Dabbaba started to play silly (1.h2-h3, h7-h6 etc) after a game has ended with a mate... The matesearch-evaluation only considering materiel was not reset. Dabbaba wants competition ------------------------- Torsten Schoop has just let Dabbaba start to play in a tournament. See SIBIRI.TXT if you want to see how it lost the first game! Whoever plays with Dabbaba with yourself, other humans or computers, I would be glad to get the games or the results or any comments. As Dabbaba can play some variants of chess, a little tournament with a new variant in each round could be funny... Test results on my 50 Mhz 486. ----------------------------- Parameters: random=0. Compiletimeoptions TURBO-1 & TURBO-2 is turned off. (that means all errorchecking taking 5% of the time is turned on). Exit when Max Sec. right seconds pr. move is Seconds for TEST move found Solved used a move Comment Larsen 1-50 60 y 33/50 1450 95 (nr. 2 and 8 ARE solved) Larsen 51-100 60 y 38/50 1240 91 Colditz 60 y 20/30 593 62 bt2630 60 y 1/30 1179 62 (nr. 26 is solved!) lct2.txt 60 y 3/35 1522 70 (nr. 16, 28 and 30) matesearch 180 y 17/17 138 41 (nr. 17 IS solved) timetest (3,8,0) n (22) 1274 185 The sourcefile -------------- Dabbaba is now made of 5500 lines of C-code. It is all in one single file. If you want this file, send me 20 USD, 10 GBP or 30 DEM. (If you want it on a disc, add 50% to the price.) My address is Jens Baek Nielsen, Daltoften 15, 8600 Silkeborg, Denmark. After getting the file you can do with it whatever you want, but I just hope you will really do some changes of your own before you call it your own program. An article ---------- See the word-article DABBABA.DOC to read about Dabbaba's play; how it can find deep combinations and play variants of chess. ******************** 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. See appendix A below. It is also possible to go on to the next position if the right move is found or to use all the allotted 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. See appendix A with an extreme example, where up to iteration 4 took 30 seconds, and the first move in iteration 5 took 333 seconds! So Dabbaba may also in seldom cases take longer time to 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). These number of nodes are adjusted due to the speedtest (1997). 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 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 ============ Dabbaba sometimes plays worse in a game than in testpositions. The file BADMOVE2 contains some positions from games, and in some of the positions it NEVER considers the move that was actually played... See also SIBIRI.TXT. 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). Promotionmoves 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'. Dabbaba's play: it seems that the program pays too much attention to double pawns and it may even sacrifice a pawn to give the opponent a doublepawn; fx: 1.e4,Nc6 2.d4,d5 3.Bb5?,dxe4 4.Bxc6+,bxc6 Appendix A: 2r3k1/pp4pp/4R3/2br4/P4B2/1Pp2pP1/5P1P/2R3K1/w Rc1-e1? 0.00 sec. Search to depth 0 0.11 sec. Search to depth 0 0.16 sec. Search to depth 0 0.22 sec. Search to depth 1 0.22 sec. best move so far: c1c3 score: -29996 0.27 sec. best move so far: h2h4 score: -129 0.33 sec. best move so far: g3g4 score: -128 0.33 sec. best move so far: a4a5 score: -125 0.49 sec. best move so far: h2h3 score: -120 0.60 sec. best move so far: e6e1 score: -106 0.66 sec. Search to depth 2 0.77 sec. best move so far: f4e3 score: -178 0.99 sec. best move so far: e6e1 score: -118 1.37 sec. best move so far: c1e1 score: -90 1.81 sec. Search to depth 3 8.30 sec. best move so far: c1e1 score: -87 16.21 sec. Search to depth 4 20.27 sec. best move so far: c1e1 score: -97 29.23 sec. Search to depth 5 362.64 sec. best move so far: c1e1 score: -91 362.86 sec. calculation of move ended