Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!ucbvax!bloom-beacon!eru!luth!sunic!mcsun!ukc!dcl-cs!gdt!gdr!chpetk From: chpetk@gdr.bath.ac.uk (Toby Kelsey) Newsgroups: gnu.chess Subject: Re: Gnuchess bug Summary: Gnuchess bug correction Keywords: gnuchess bug Message-ID: <1989Nov28.190429.12089@gdt.bath.ac.uk> Date: 28 Nov 89 19:04:29 GMT References: <1989Nov27.204521.7311@Neon.Stanford.EDU> Reply-To: chpetk@gdr.bath.ac.uk (Toby Kelsey) Organization: School of Chemistry, University of Bath, UK Lines: 30 In article <1989Nov27.204521.7311@Neon.Stanford.EDU> dalgic@bodega.stanford.edu (Ismail Dalgic) writes: >I have the GnuChess version 1.53, and several times I noticed a very >disturbing bug. The program "forgets" about the piece in front of a >pawn in its original rank when it advances the pawn by 2. I came across the same bug. After looking at the code I found that the making the following change to "move.c" corrected the error. - output of 'diff move.c move.c.old' - 335,336c335,336 < while ((u != sq) && (color[u] == neutral)) { < LinkMove(ply,sq,u,xside); --- > while (u != sq) { > if (color[u] == neutral) LinkMove(ply,sq,u,xside); This is in the pawn-move section (obviously!). This makes it checks squares only until it reaches a non-empty one. [ I'm not sure of my version, "gnuchess.c" mentions revision 4-25-88, and the last date in "CHANGES" is Aug. 1 '89 ] >--Ismail Dalgic - Toby. -- Toby Kelsey UUCP : ...!ukc!gdr!chpetk School of Chemistry, DARPA: chpetk%gdr.bath.ac.uk@nsf-relay.ac.uk University of Bath. JANET: chpetk@uk.ac.bath.gdr Brought to you by Super Global Mega Corp .com