Unfortunately, even strong players will disagree on many aspects of this, especially when it comes to what the values should be in a chess program.xsadar wrote:Thanks for all the thoughts Don. When I've tried before to make piece-square tables, I figured I could just follow the general rules, but I really know very few of the general rules. I know you should try to control the center. I know to keep knights away from the edges. I know to move the king more toward the center in the end game, but of course keep it safely tucked away behind some pawns in the corner before that.
So that leads to the question, where can I find more information on general rules that are more pertinent to piece-square tables? Of course I know there are millions of chess books out there, but I'm looking for something most pertinent to the task at hand. On the web would be ideal (and as I remember there is at least some on CPW), but I'm not completely opposed to buying a book if it's worth the cost.
Also, I just realized, I don't have to put everything I want it to know into the tables at once, but I can build them up gradually over time. I can start by figuring in one simple rule, and test that, then figure in another rule, and test that, and so on. That would definitely work best if I generate them on the fly as you suggest. The difficult part of course will be figuring the range of values.
I think you may want to start it with rules to build the table, instead of just trying to hand-code each square - that way you can experiement freely. You can auto-test each change if you don't know much about chess, but it's generally better to watch it play games and then back this up with auto-testing.
For you, I think you definitely need to get into serious self-testing even if it's at shallow depths. You can get a reasonable evaluation function from shallow depth games.
I know that Franz Morsch used to use 1 ply games as a sanity check. He once told me that it must play reasonable looking moves on 1 ply or the evaluation is no good.
Also, look at the 2nd, 3rd, 4th choice etc. Are those moves in reasonable order? It may play the correct move, but if it's second favorite move is h4 from the opening position you have a problem. Of course for this check you should make sure that the alpha beta window will score these moves correctly.