home *** CD-ROM | disk | FTP | other *** search
/ Bart's Chess Hits / Chess.iso / Chess / GAMES / DABBABA1 / README.TXT < prev    next >
Encoding:
Text File  |  1997-10-08  |  17.3 KB  |  401 lines

  1. If you want to know all about Dabbaba, you should first read dabbaba.txt, 
  2. that covers the january 1996 version.
  3. This readme.txt file gives you the updates etc. since then.
  4.  
  5.  
  6. ******************** Dabbaba version Oct. 04 1997 ************************
  7. ==========================================================================
  8.  
  9. New things in Dabbaba
  10. ---------------------
  11. 1) Many small things have been corrected / optimized.
  12. 2) Time used so far can now be seen during a game.
  13. 3) Dabbaba is now more aware of how much time is used, but...
  14. 4) Dabbaba will always search at least 2 iterations (unless a mate is found),
  15.    and on my old 486 50Mhz I have in a rare case seen this last for 6 minutes!
  16.    So even on a Pentium 200Mhz, that is 9 times faster, a move may take more 
  17.    than a half minute even though Dabbaba is set to play faster.
  18.    I hope to optimize the search in the future.
  19.    This minimumsearch is used to eliminate pseudomoves in the variants.
  20. 5) A much better understanding of quiet positions.
  21. 6) Dabbaba starts with a speed-test to measure the speed of the PC that
  22.    it is running on. The result can be seen in '6. Menu: Special options', and
  23.    it is used to set up suiting parameters for the mate-search.
  24. 7) The matesearch has been slightly improved.
  25.    (the Bc4xf7+ mate in 9 (see the matesrch-file) is now solved).
  26. 8) A new kind of level 'game in xx minutes' is now implemented.
  27.    Dabbaba guesses there are 10-30 moves left in the game depending on how
  28.    much material there are on the board.
  29.    The remaining time is divided by that number of moves to set a timelimit
  30.    for the next move.
  31.    Besides it plays gradually faster in the opening when black has more
  32.    than 5 undeveloped pieces. It is silly to use 3 minutes on 1.e2-e4.
  33.    Dabbaba will never claim a win/loss due to timeforfeit.
  34. 9) An everplay function plays games forever. Black and white plays with
  35.    a little difference in their strategy (I determine this change), and I
  36.    use the everplay to see what strategy is best...
  37.    Right now white has a selektive depth = 8 (which is what Dabbaba uses
  38.    now, where a depth = 4 was used in the 1996 version), and black has 
  39.    a depth = 6.
  40.    The random-function should ensure different openings in the games.
  41.    If anyone runs a big number of games I would like to know the result.
  42.    The new level 'game in x minutes' must be used.
  43.    Don't play faster than 'game in 3 minutes' on a Pentium 200 Mhz.
  44.    The current position and total score is instantly shown.
  45.    A game is stopped after 80 moves. If the score is bigger than 300 
  46.    (3 pawns), the game is considered as a full win (1.00). If the score is 
  47.    fx 150, white gets 150/300 = 0.5, and the rest 300-150=150 is divided 
  48.    equal this way: 150/2=75 gives 75/300=0.25 to each player.
  49.    So white gets 0.75 and black gets 0.25.
  50.    This is the most fair formula I have come up with so far.
  51. A) An old error has been corrected: Dabbaba started to play silly
  52.    (1.h2-h3, h7-h6 etc) after a game has ended with a mate...
  53.    The matesearch-evaluation only considering materiel was not reset.
  54.     
  55. Dabbaba wants competition
  56. -------------------------
  57. Torsten Schoop has just let Dabbaba start to play in a tournament. See
  58. SIBIRI.TXT if you want to see how it lost the first game!
  59. Whoever plays with Dabbaba with yourself, other humans or computers, I would
  60. be glad to get the games or the results or any comments.
  61. As Dabbaba can play some variants of chess, a little tournament with a new
  62. variant in each round could be funny... 
  63.  
  64. Test results on my 50 Mhz 486. 
  65. -----------------------------
  66.   Parameters: 
  67.    random=0. 
  68.    Compiletimeoptions TURBO-1 & TURBO-2 is turned off. 
  69.    (that means all errorchecking taking 5% of the time is turned on).
  70.                     Exit                                 
  71.                     when                           Max    
  72.               Sec.  right                          seconds
  73.               pr.   move is             Seconds    for   
  74. TEST          move  found    Solved        used    a move    Comment 
  75. Larsen 1-50    60    y       33/50         1450    95  (nr. 2 and 8 ARE solved)
  76. Larsen 51-100  60    y       38/50         1240    91
  77. Colditz        60    y       20/30          593    62
  78. bt2630         60    y        1/30         1179    62  (nr. 26 is solved!)
  79. lct2.txt       60    y        3/35         1522    70  (nr. 16, 28 and 30)
  80. matesearch    180    y       17/17          138    41  (nr. 17 IS solved)
  81. timetest   (3,8,0)   n         (22)        1274   185 
  82.  
  83. The sourcefile
  84. --------------
  85. Dabbaba is now made of 5500 lines of C-code. It is all in one single file.
  86. If you want this file, send me 20 USD, 10 GBP or 30 DEM. 
  87. (If you want it on a disc, add 50% to the price.)
  88. My address is Jens Baek Nielsen, Daltoften 15, 8600 Silkeborg, Denmark.
  89. After getting the file you can do with it whatever you want, but I just hope
  90. you will really do some changes of your own before you call it your own 
  91. program.
  92.  
  93. An article
  94. ----------
  95. See the word-article DABBABA.DOC to read about Dabbaba's play; how it can
  96. find deep combinations and play variants of chess.
  97.  
  98.  
  99. ******************** Dabbaba version Oct. 14 1996 ************************
  100. ==========================================================================
  101. Dabbaba now uses piece-lists, and this has speeded move-generation and
  102. pawn-evaluation up, something like 20% compared to the aug.-version. 
  103. Dabbaba now also knows the bishop pair, know it is good to trade off when 
  104. ahead (and not to trade off when behind), tries to get the queen close to
  105. the enemy king and knows much more about where to place its rooks (see
  106. below).
  107. The pawnevaluation has been improved a little.
  108. I have removed something bad working 'advanced' killer rules, increasing 
  109. the speed with 20%. Don't remember killers that captures the piece that
  110. has just muved gave 3%. A better pre-order of moves gave 10%.
  111. Pawnmoves attacking pieces are now selektive moves and slows down Dabbaba
  112. with 12% (but makes it play better!).
  113. But most important a lot of quiet moves deep in the search has been removed,
  114. so only the very best are now tried, and this has increased the speed with
  115. 400%!!!
  116. So this version is 4-5 times faster than the august-version!
  117. The good, old Colditz-test gives Dabbaba (486 50 Mhz) a tactical rating   
  118. of 1830.
  119.   
  120. Some other changes are:
  121. rooks on open files, block c-pawns less, play more 1.e4, keep g-pawn
  122. on 2/3 row, kingsafety: pawn in front of king most important to be there.
  123.  
  124. During gameplay the board is bigger.
  125.  
  126. While running testpositions in files, it is now possible to create a file
  127. (dabbaba.trc) showing which moves Dabbaba found at a given time. Just answer 
  128. 1(=yes) to the question if you want the file.
  129. See appendix A below.
  130. It is also possible to go on to the next position if the right move is found    
  131. or to use all the allotted time on the position. Just answer the question. 
  132.  
  133. The main menu is now easy and light and can be turned back to extended use 
  134. with the W (whole menu).
  135.  
  136. Levels of play:
  137. Is now much easier for the user, as you simply can decide how many seconds
  138. Dabbaba should use for each move instead of deciding the search depth (brute 
  139. force, selektiv and check-search).
  140. If you want to use Dabbaba the old way, give Dabbaba zero seconds pr. move,
  141. and the search depths appear in the menu.
  142. With x seconds pr. move, Dabbaba will max. use 20% of the time in the 
  143. matesearch.
  144. Dabbaba will terminate the normal search if more than 90% of the time is
  145. used when it has finished examining a move in a given iteration. 
  146. It may move much earlier, as Dabbaba won't start a new iteration if more
  147. than 30% of the time is used. This is because, that all the remaining 70% of 
  148. the time probably will be used on the first move in the next iteration - the 
  149. move that already is found as the best move. 
  150. See appendix A with an extreme example, where up to iteration 4 took 30 
  151. seconds, and the first move in iteration 5 took 333 seconds! So Dabbaba may 
  152. also in seldom cases take longer time to move.
  153. Dabbaba shows how deep in the search it was when the timeout occured.
  154.  
  155.  
  156. Comments when version 1996 Aug. 20 was released 
  157. (about errors in version 1996 july 23.)
  158. ===============================================
  159. King safety didn't work at all.
  160. Ghost-rooks could occur in the corners, if a rook ready for castle was 
  161. moved.
  162. Chessvariants where the queen is Archbishop & Chancellor had an error, as 
  163. the queens new value was given to the knight.
  164. These errors are now corrected.
  165.  
  166.  
  167. Comments when version 1996 july 23 was released.
  168. ===============================================
  169. Dabbaba is now tactically much stronger.
  170. It fx solves a mate in 12 moves in a special testposition in 0,63 second 
  171. (see the mate-search demo later).
  172. Dabbaba also understands draws by simpel repetition of moves (see the Rg7+ 
  173. position). But only during calculating a move, not during playing a game.
  174. Dabbaba now has a simple knowledge of king safety. The opening tips have 
  175. also been improved, and Dabbaba now plays 'random' in the opening.
  176. Selfplay don't loop now, and the board is shown the first 56 moves.
  177. INFO during gameplay can be turned on/off with the info-command. Turn it 
  178. off if you don't want the information and the scrolling of the chessboard.
  179. You can get the help-menu by typing help or ? during the game.
  180.  
  181.        
  182. Further information in the future
  183. =================================
  184. Send your e-mail address to me (jensbaek@silkeborg.bib.dk) and you may 
  185. receive information about Dabbaba in the future.
  186.  
  187.  
  188. Where should the rooks be moved to?    
  189. ===================================
  190. This is very difficult to tell a program, because moving the rooks has
  191. much with long range planning to do.
  192. During pawn-evaluation a bonus is given, if a rook is on the same file
  193. as a weak opponents pawn.
  194. New bonus's are given for moving the rooks up the board, especially row
  195. 7 and 8, for having the rooks connected; especially on a file, and for
  196. having a rook on the same row as the opponents king.
  197.  
  198.  
  199. move-now
  200. ========
  201. If you press a key while Dabbaba is computing a move, Dabbaba will move 
  202. when it has finished calculating its current move.
  203. If this is done during selfplay or running a testfile, these functions will 
  204. be cancelled.
  205.  
  206.  
  207. menu Special Options
  208. ====================
  209. Some new information can be found here (most for my own use).
  210.  
  211.      
  212. Running testfiles
  213. =================
  214. When asked for a position number, you may now type in a negative number. 
  215. fx. will -40 skip the first 40 positions in the file and start calculate 
  216. from position 41.
  217. Dabbaba still only instantly show how 50 positions are solved, and now it 
  218. stops after calculating 50 positions.
  219. You are asked if you want a file (dabbaba.trc) to be written with the moves
  220. Dabbaba has found at given times during the search.  
  221. If a mate is found, the position is left immediately.
  222. If the right move is found after iteration 2 or later, the position is 
  223. considered solved and no further iterations are done if you have answered
  224. yes to leave the position in this case.
  225.  
  226.  
  227.  
  228. Pawn-evaluation
  229. ===============
  230. Dabbaba now knows something about isolated pawns, double pawns, passed 
  231. pawns, weak pawns on halfopen files.
  232. Unfortunately this takes some time, but it is important.
  233. During gameplay you can press 'p' and see how each pawn is evaluated.
  234.  
  235.    
  236. Variants
  237. ========
  238. An article of Ralph Betza in Eteroscacco has inspired me to add 4 new 
  239. variants to Dabbaba.
  240.  
  241.  
  242. Transpositions
  243. ==============
  244. This has an error, so leave tpo2 set to 99 (off) as it is when you start 
  245. Dabbaba.
  246.  
  247.  
  248. Tester
  249. ======
  250. I have got Alastair Scott from UK as 'an official tester' of Dabbaba.
  251. Torben Osted has given me some games played against ArcChess.
  252.  
  253.  
  254. The old levels
  255. ==============
  256. (Before move-in-x-seconds was made, the old default was (3,3,2).)
  257. If the startlevel (3,3,2) is too slow, you can reduce the numbers.
  258. I recommend for level (a,b,c), that a+b is even, c is even and b>0. A 
  259. little difficult to explain why, but it has something to do with the I-
  260. position (Nxf7??).
  261. I expect it is quite easy to repair, but just haven't done it yet.
  262. Perhaps (4,4,0) is better than (3,3,4). (4,4,2) certainly is, but it is too 
  263. slow.
  264. You may change the 'selektiv search dynamic limit' from 20 to 24 which may 
  265. increase the speed of Dabbaba at the cost of trying fewer quiet moves. Set 
  266. to 24 it solves the ca. 80 positions in the file LARS440 at level (4,4,0) 
  267. in ca. 25 minutes (in the new version it takes more than an hour; mainly 
  268. because of the pawn evaluation). Many of these problems are very nice 
  269. combinations!
  270.  
  271.  
  272. The name Dabbaba
  273. ================
  274. A few persons has asked me about the name Dabbaba. 
  275. The program also plays variants of chess; fx where the knights are 
  276. Nightriders (making long moves). A dabbaba is another piece that moves in 
  277. an unusual way. The dabbaba is used in one of the variants in the Dabbaba 
  278. program.
  279.  
  280.  
  281. The Matesearch
  282. ==============
  283. The matesearch is an important feature. Dabbaba starts its computing of a 
  284. move by following many lines of checks and hopes to find a mate or a good 
  285. capture.
  286. Do this to see what it can do in a few minutes:
  287. * Set the level to 180 seconds pr. move
  288. * choose 7: chesspositions in files.
  289. * choose M for matesrch file.
  290. * choose 0 for all positions.
  291. * choose 1 to pause at each position 
  292. * choose 0 not to make a discfile 
  293. * choose 1 to exit the position when the right move is found
  294. - and enjoy what Dabbaba manages to find!
  295.  
  296. The matesearch is started up to 3 times; each time going deeper (8, 16 and 
  297. 24 ply) and considering more moves.
  298. A maximum number of nodes are searched depending on the brute force depth 
  299. you have chosen: 
  300. depth 1: 10.000 nodes
  301. depth 2: 30.000 nodes
  302. depth 3: 50.000 nodes etc.
  303. (assuming the matesearch-factor not is changed from the value of 10).
  304. These number of nodes are adjusted due to the speedtest (1997).
  305. If more than 1/3 of this maximum number of nodes have been searched, no 
  306. further matesearch will be started.
  307. * if move-in-x-seconds is used, a max. of 20% of the time is used in the 
  308. matesearch, and the matesearch-factor only decides if a matesearch is made
  309. or not (set it to zero if you don't want a matesearch).
  310.  
  311.  
  312. J - magic number.
  313. ================
  314. What is this?
  315. Try this demo:
  316. Set magic number to 8
  317. * choose 5 for chesspositions
  318. * choose 5 for the mate in 12 position
  319. now you can see the little silly gimmick.
  320. * type X to return.
  321. * set magic number to 7.
  322. * choose 2 to run - and see how the black king is hunted (this is also 
  323. funny with the Morphy-position). It takes about a minute to hunt the king.
  324. * set magic number to 0 again.
  325. * choose 2 to run again, and it is now 100 times faster without the 
  326. gimmick. 
  327. Other 'secret' values are used by myself while developing Dabbaba. Those 
  328. with a text in () are intended for my own use.
  329.  
  330. Magic=2 makes Dabbaba also consider promotion to bishop and rook. 
  331.  
  332.  
  333. C-programming
  334. =============
  335. I'm not an expert in C-programming.
  336. How do I issue a 'EDIT DABBABA.TXT'?
  337. How do I avoid the scrolling? - and is still able to receive keyboard input 
  338. from the user?
  339. How do I use the mouse?
  340.  
  341. If someone has a little program that shows these things I would like to see 
  342. it.
  343.  
  344. I have a 486, but my compiler can only generate 386-code. Will Dabbaba be 
  345. faster if it is compiled with a compiler that generates 486-code?
  346. Will Pentium-owners benefit even more if Dabbaba is compiled to produce 
  347. pentium-code?
  348.  
  349. Does the compiler have a special facility to tell, in which parts 
  350. of Dabbaba the time is spent?
  351.  
  352. Does tools exist, that can take the c-source and generate cross-reference 
  353. lists or diagrams?
  354.  
  355.  
  356. known errors
  357. ============
  358. Dabbaba sometimes plays worse in a game than in testpositions.
  359. The file BADMOVE2 contains some positions from games, and in some of the
  360. positions it NEVER considers the move that was actually played...
  361. See also SIBIRI.TXT.
  362.  
  363. Dabbaba don't recognize promotionmoves in solutions as correct moves (fx 
  364. the Lot of knights-position (b7-b8N) in the menu and in the matesrch-file). 
  365.  
  366. Promotionmoves are not looking right in dabbaba.trc.
  367.  
  368. I have a little problem with end-of-file of the testfiles, so so far the 
  369. last line in the file has to start with '#x'.
  370.  
  371. Dabbaba's play: it seems that the program pays too much attention to double
  372. pawns and it may even sacrifice a pawn to give the opponent a doublepawn; fx:
  373. 1.e4,Nc6 2.d4,d5 3.Bb5?,dxe4 4.Bxc6+,bxc6
  374.  
  375.  
  376.  
  377. Appendix A:
  378. 2r3k1/pp4pp/4R3/2br4/P4B2/1Pp2pP1/5P1P/2R3K1/w Rc1-e1?  
  379.  
  380.      0.00 sec.   Search to depth 0
  381.      0.11 sec.   Search to depth 0
  382.      0.16 sec.   Search to depth 0
  383.      0.22 sec.   Search to depth 1
  384.      0.22 sec.   best move so far: c1c3   score: -29996
  385.      0.27 sec.   best move so far: h2h4   score: -129
  386.      0.33 sec.   best move so far: g3g4   score: -128
  387.      0.33 sec.   best move so far: a4a5   score: -125
  388.      0.49 sec.   best move so far: h2h3   score: -120
  389.      0.60 sec.   best move so far: e6e1   score: -106
  390.      0.66 sec.   Search to depth 2
  391.      0.77 sec.   best move so far: f4e3   score: -178
  392.      0.99 sec.   best move so far: e6e1   score: -118
  393.      1.37 sec.   best move so far: c1e1   score: -90
  394.      1.81 sec.   Search to depth 3
  395.      8.30 sec.   best move so far: c1e1   score: -87
  396.     16.21 sec.   Search to depth 4
  397.     20.27 sec.   best move so far: c1e1   score: -97
  398.     29.23 sec.   Search to depth 5
  399.    362.64 sec.   best move so far: c1e1   score: -91
  400.    362.86 sec.   calculation of move ended
  401.