home *** CD-ROM | disk | FTP | other *** search
- # From hvrunix!vu-vlsi!cbmvax!bpa!burdvax!sdcrdcf!oberon!cit-vax!ames!ucbcad!ucbvax!sdcsvax!ucsdhub!hp-sdd!hplabs!hpcea!hpisla!hpltca!jhs Wed Apr 29 16:19:51 1987
- # Path: swatsun!hvrunix!vu-vlsi!cbmvax!bpa!burdvax!sdcrdcf!oberon!cit-vax!ames!ucbcad!ucbvax!sdcsvax!ucsdhub!hp-sdd!hplabs!hpcea!hpisla!hpltca!jhs
- # From: jhs@hpltca.HP.COM (John Stanback)
- # Newsgroups: net.sources.games
- # Subject: C source for CHESS
- # Message-ID: <2320001@hpltca.HP.COM>
- # Date: 29 Apr 87 20:19:51 GMT
- # Organization: H P, Colorado Integrated Circuits Div., Loveland, CO
- # Lines: 2660
- #
- #
- # C source for CHESS
- #
- # Here is a shar script containing source code in 'C' for a chess
- # program I've written. The following files are included:
- # 1. chess.c : C source for CHESS
- # 2. chess.opn : Opening Library
- # 3. chess.001 : Sample problem
- #
- # The file chess.c must be compiled with the -lcurses option. The
- # code is pretty generic (I think) and hopefully will run on a wide
- # variety of machines. The help command gives a list of the options
- # available. To test out the program, enter 'get' and respond to
- # the file name prompt with 'chess.001'. Type 'switch' and the
- # computer should find mate in 4 with Nf7. This takes a few seconds
- # on an HP350 computer.
- #
- # The program plays a fairly respectable game of chess, although it
- # is not competetive with a state-of-the art commercial program. The
- # search rate is typically 100-300 nodes/sec. on an HP Vectra (8 Mhz.
- # 286) and about 300-900 nodes/sec. on an HP 350 (25 Mhz. 68020). I
- # am interested to find out what is achieved on other machines. I
- # would also be interested in any comments on playing strength,
- # weaknesses or bugs in the program, and suggested improvements in
- # the algorithm.
- #
- # Here are a few comments on the program:
- #
- # 1. Opening Library
- # I'm a terrible chess player and don't know anything about
- # openings. I copied 70-80 random lines of play from MCO into
- # the file chess.opn. I think there are a few mistakes in the
- # translation. If anyone generates a better library please let
- # me know.
- #
- # 2. Positional Heuristics
- # I think that improvement in this area would help the program
- # quite a bit. In most situations the computer cannot do
- # anything forceful and the choice of a move is based on
- # positional aspects. I haven't spent a lot of time on the
- # heuristics and many times the program has no idea of what is
- # happening and how to proceed. Perhaps optimizing the values of
- # the existing heuristics would help, but to get a major
- # improvement I think more chess knowledge will be necessary.
- #
- # 3. Search Algorithm
- # This program uses a full-width alpha-beta searching technique
- # with depth extensions on checks, check evasions, pawn promotion
- # threats and threats to multiple pieces. Capture sequences are
- # handled by a separate search routine. I imagine that much more
- # efficient search routines exist, and would be interested to hear
- # of any. Refinements of the search extension heuristics (similar
- # to the extensions for pawn promotion threats) could have a major
- # effect on the programs ability.
- #
- # 4. Move Generation
- # There are probably better ways to do this, but they would
- # likely change the data structure drastically and necessitate
- # a complete re-write. Maybe some good hacks would speed things
- # up, the ataks function would be the best place to start.
- #
- #
- # This is a shell archive. Remove anything before this line,
- # then unpack it by saving it in a file and typing "sh file".
- #
- # Wrapped by jhs at hpltca on Wed Apr 29 13:19:09 1987
- #
- # This archive contains:
- # chess.c chess.opn chess.001
- #
-