Reinhard Scharnagl wrote:Hi Tord,Tord wrote:It is surprising how many beginners seem to believe that the speed of the move generator is one of the main factors deciding the strength of the engine.
well, the move generator's speed is of course important to judge, whether your board representation is implemented well or not, thus if your data structure is acceptable designed.
Not necessarily. This depends on what else you want to do in your program, and whether the more expensive computations you want to do later will have much resemblance to move generation. For most beginning chess programmers, this is very hard to guess. Therefore, I think it is better to concentrate on creating a working, strong and reasonably bug-free program first, and only then try to find out what sort of operations tend to be the most expensive in your code, and optimise your data structures to do these operations more quickly. When the program is young and rapidly developing, it is useful to keep the code simple, fluid and flexible. Being able to easily switch to entirely different data structures and board representations without having to rewrite everything is a considerable advantage.
Another fact which cannot be mentioned often enough is that amateurs overestimate the importance of efficient data structures, and spend too much time and energy trying to optimise them. Efficiency on a higher level is more important by an order of magnitude. On the average amateur level, you usually do not win games by searching more nodes per second than the opponent. You win by having fewer bugs and a more efficient search.
Tord