home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume1 / chess / README < prev   
Text File  |  1987-05-20  |  3KB  |  62 lines

  1.  
  2. C source for CHESS
  3.  
  4. Here is a shar script containing source code in 'C' for a chess 
  5. program I've written. The following files are included: 
  6.   1. chess.c   : C source for CHESS
  7.   2. chess.opn : Opening Library
  8.   3. chess.001 : Sample problem
  9.   
  10. The file chess.c must be compiled with the -lcurses option. The 
  11. code is pretty generic (I think) and hopefully will run on a wide 
  12. variety of machines. The help command gives a list of the options
  13. available.  To test out the program, enter 'get' and respond to
  14. the file name prompt with 'chess.001'.  Type 'switch' and the
  15. computer should find mate in 4 with Nf7.  This takes a few seconds
  16. on an HP350 computer.
  17.  
  18. The program plays a fairly respectable game of chess, although it 
  19. is not competetive with a state-of-the art commercial program. The 
  20. search rate is typically 100-300 nodes/sec. on an HP Vectra (8 Mhz. 
  21. 286) and about 300-900 nodes/sec. on an HP 350 (25 Mhz. 68020). I 
  22. am interested to find out what is achieved on other machines. I 
  23. would also be interested in any comments on playing strength, 
  24. weaknesses or bugs in the program, and suggested improvements in 
  25. the algorithm. 
  26.  
  27. Here are a few comments on the program:
  28.  
  29. 1. Opening Library
  30.      I'm a terrible chess player and don't know anything about 
  31.      openings. I copied 70-80 random lines of play from MCO into 
  32.      the file chess.opn. I think there are a few mistakes in the 
  33.      translation. If anyone generates a better library please let 
  34.      me know. 
  35.      
  36. 2. Positional Heuristics
  37.      I think that improvement in this area would help the program 
  38.      quite a bit. In most situations the computer cannot do
  39.      anything forceful and the choice of a move is based on 
  40.      positional aspects. I haven't spent a lot of time on the 
  41.      heuristics and many times the program has no idea of what is 
  42.      happening and how to proceed. Perhaps optimizing the values of 
  43.      the existing heuristics would help, but to get a major 
  44.      improvement I think more chess knowledge will be necessary. 
  45.      
  46. 3. Search Algorithm
  47.      This program uses a full-width alpha-beta searching technique 
  48.      with depth extensions on checks, check evasions, pawn promotion
  49.      threats and threats to multiple pieces. Capture sequences are
  50.      handled by a separate search routine. I imagine that much more
  51.      efficient search routines exist, and would be interested to hear
  52.      of any. Refinements of the search extension heuristics (similar
  53.      to the extensions for pawn promotion threats) could have a major 
  54.      effect on the programs ability. 
  55.      
  56. 4. Move Generation
  57.      There are probably better ways to do this, but they would 
  58.      likely change the data structure drastically and necessitate 
  59.      a complete re-write. Maybe some good hacks would speed things 
  60.      up, the ataks function would be the best place to start.
  61.       
  62.