Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: BUG on Galahad

Author: James Swafford

Date: 11:31:20 12/20/99

Go up one level in this thread


Okay, you got me.  My code is crap.  Yours is
correct.  YOu were right.  I was wrong.  You're the best.
I suck.  You're cool.  I'm a dork.  (I hope you get the
point).

Thanks for pointing this out.  I still wish
you had emailed me.

I apologize for jumping the gun.

--
James



On December 20, 1999 at 14:24:04, James Swafford wrote:

>There is no such thing as a position with two legal ep captures.
>The ep flag is cleared immediately, so your code is crap.
>
>Next time, email me.  You know the address; we just exchanged
>emails last week.  There's a link on my site.
>
>--
>James
>
>
>
>On December 20, 1999 at 12:57:08, Nicolas Carrasco wrote:
>
>>Dear Guys,
>>
>>While I started studying how to write a Bitboard chess engine I read “Galahad
>>Chess Engine” move generator from James F. Swafford publicated on:
>>http://members.xoom.com/jswaff/chessprg/ at  Move Generation section.
>>NOTE: At the end you will have a link to download the move-gen.
>>
>>I wrote him several e-mails but never recived a reply.
>>
>>To generate the EP captures he does this that I think is wrong because he forget
>>a position with two possible EP captures.
>>
>>   if (posptr->epsquare<64) {
>>      to_map=bpmoves[posptr->epsquare]&posptr->whitepawns;
>>      if (to_map) {
>>         from_sq=LSB(to_map);
>>         m->m.b.from=from_sq;
>>         m->m.b.to=posptr->epsquare;
>>         m->m.b.promote=0;
>>         m->m.b.bits=21;
>>         m->score=0;
>>         m++;
>>      }
>>   }
>>
>>And nothing else for EP captures.
>>
>>I think the correct way is:
>>
>>   if (posptr->epsquare<64) {
>>      to_map=bpmoves[posptr->epsquare]&posptr->whitepawns;
>>      while (to_map) {
>>         from_sq=LSB(to_map);
>>         to_map^=mask[to_sq];
>>         m->m.b.from=from_sq;
>>         m->m.b.to=posptr->epsquare;
>>         m->m.b.promote=0;
>>         m->m.b.bits=21;
>>         m->score=0;
>>         m++;
>>      }
>>   }
>>
>>Or:
>>
>>   if (posptr->epsquare<64) {
>>      to_map=bpmoves[posptr->epsquare]&posptr->whitepawns;
>>      if (to_map) {
>>         from_sq=LSB(to_map);
>>         to_map^=mask[to_sq];
>>         m->m.b.from=from_sq;
>>         m->m.b.to=posptr->epsquare;
>>         m->m.b.promote=0;
>>         m->m.b.bits=21;
>>         m->score=0;
>>         m++;
>>         if (to_map) {
>>           from_sq=LSB(to_map);
>>           m->m.b.from=from_sq;
>>           m->m.b.to=posptr->epsquare;
>>           m->m.b.promote=0;
>>           m->m.b.bits=21;
>>           m->score=0;
>>           m++;
>>          }
>>        }
>>   }
>>
>>To James: Can you tell me your usual e-mail address?
>>
>>Thanks in advance and good luck.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.