Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: followup about the move structure

Author: Russell Reagan

Date: 17:13:45 02/21/04

Go up one level in this thread


On February 21, 2004 at 20:01:31, Mathieu Pagé wrote:

>Is it normal ?

It depends how you are using the data. I think most people probably copy the
moves around a little or a lot for things like move ordering, saving the move
that was made, storing and retrieving moves from the hash table, and so on. If
you are not doing those things, then the struct might be faster. I ran into the
same problem before my program became very mature. When all my program did was
calculate perft and play random moves, I didn't have any real need to copy moves
around, so I used a struct and it was faster. Now I use an unsigned value, but
it is wrapped up inside a class, so I can change it very easily.

This leads us to an important rule. Don't worry too much about optimization
until you have written a complete program and understand the difficulties and
problems of chess programming. This is a good example. If you only worry about
how fast the program is, then you might see that the struct is faster when you
are first writing your program. Later on, the struct might cause the program to
be slower.

I've done all kinds of stupid optimizations that ended up making it harder on me
down the road, because I hadn't been down the road yet, so I didn't know what to
expect. Don't ignore optimization, but don't worry about it too much until you
have travelled the road at least once. After you've travelled it a few times it
will usually be pretty clear how you should structure things, and it is a good
idea to abstract things so that you can change the implementation of certain
things in your program without having to make 500 changes scattered throughout
your code (like every place you deal with a move). Even if you use C and don't
have classes, it's a good idea to use macros or inline functions and not always
touch the data directly. That has been my experience anyway. Maybe I'm just too
careless :)



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.