Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: advantages to board pointers

Author: Sean Empey

Date: 13:51:00 06/10/04

Go up one level in this thread


On June 10, 2004 at 16:44:30, Eric Oldre wrote:

>On June 10, 2004 at 16:33:03, Dann Corbit wrote:
>
>>There are two reasons you might want to use pointers:
>>
>>1.  You don't know how big something will be before hand.  E.g. a hash table.
>>
>>2.  You want to pass it as quickly as possible and the pointer is smaller than
>>the object.  For instance, if I have a 500 byte object and a pointer is 4 bytes,
>>then passing a pointer will push and copy 4 bytes {the address of the object}
>>instead of 500 bytes {the object itself}.
>>
>>The functionality of things does not hinge on whether you have the object or a
>>pointer to it.
>
>Thanks for the fast response Dann.
>
>I do understand what the reasons to use pointers in a program in general are
>(somewhat). But what I'm more interested in is the experiece people have had
>passing pointers to a board in a chess program specifically. And the tradeoffs
>they may have considers when choosing to either of the ideas described below.
>
>
>//example, not passing a pointer, using global board;
>
>extern chessboard board;
>int search(int depth, int alpha, int beta); //searches from current position of
>global board.
>void move_make(chessmove move); //applies move to global board.
>
>
>
>//example, passing a pointer to a board
>
>int search(chessboard *board, int depth, int alpha, int beta);
>void move_make(chessboard *board, chessmove move); //applies move to board at
>address of *board

if you are running the program in console for example and while it's searching
and you issue db (display board) you would see the board at the point the search
is at and not the current position because you are making the moves to the
global board. I actually used this technique in my first versions of Storm. I
now use a different board that the search uses.


>
>
>(ps. in the crafty implentation, i think he's not actually passing a pointer to
>a board. but to some other stucture that holds a board among other things)



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.