Author: Uri Blass
Date: 09:04:35 03/23/04
Go up one level in this thread
On March 23, 2004 at 11:42:44, Uri Blass wrote: >On March 23, 2004 at 10:43:05, Peter Fendrich wrote: > >>On March 23, 2004 at 09:13:21, martin fierz wrote: >> >>>On March 23, 2004 at 08:59:04, Peter Fendrich wrote: >>> >>>>On March 23, 2004 at 04:51:18, Uri Blass wrote: >>>> >>>>>On March 23, 2004 at 02:24:38, Tony Werten wrote: >>>>> >>>>>>On March 22, 2004 at 19:21:42, Dann Corbit wrote: >>>>>> >>>>>>>On March 22, 2004 at 18:57:52, Uri Blass wrote: >>>>>>> >>>>>>>>On March 22, 2004 at 18:50:15, Dieter Buerssner wrote: >>>>>>>> >>>>>>>>>On March 22, 2004 at 18:16:37, martin fierz wrote: >>>>>>>>> >>>>>>>>>>of course i would also like to make an incremental update of that table, but i >>>>>>>>>>decided against such an attempt because i couldn't figure out how to do it - or >>>>>>>>>>rather, i devised a scheme for incremental updating which was so horribly >>>>>>>>>>complicated that i decided not to use it - i'd rather have a slow engine with >>>>>>>>>>little bugs and good maintainability than a fast engine with many bugs and low >>>>>>>>>>maintainability :-) >>>>>>>>> >>>>>>>>>Reminds me of: >>>>>>>>> >>>>>>>>>"Debugging is twice as hard as writing the code in the first place. Therefore, >>>>>>>>>if you write the code as cleverly as possible, you are, by definition, not smart >>>>>>>>>enough to debug it." Brian W. Kernighan >>>>>>>>> >>>>>>>>>At the moment, I don't use attack tables at all. But I want them again. And I >>>>>>>>>also only have a "build-from-scratch" routine. I also thought about incremental >>>>>>>>>updates, and it seems like a very hard job. And the bad thing is, they seem to >>>>>>>>>be especially useful at the leafs or close to the leafs. Perhaps I will start >>>>>>>>>again with using them only closer to the root, for pruning/extension decisions. >>>>>>>>> >>>>>>>>>Regards, >>>>>>>>>Dieter >>>>>>>> >>>>>>>>I update them incrementally. >>>>>>>>I can only give a hint that I simply have a function to update incrementally >>>>>>>>when I add a piece or delete a piece. >>>>>>>> >>>>>>>>I got this idea when I got the conclusion that having a function to update them >>>>>>>>based on a move is a very hard task. >>>>>>> >>>>>>>I think I have the same idea: >>>>>> >>>>>>You left out the interesting part: >>>>>> >>>>>>> >>>>>>>1. Lift the piece off the board, and remove all of its influence >>>>>> >>>>>>1b for every slider attacking the fromsquare, extend its influence >>>>> >>>>>You miss the idea >>>>> >>>>>All the idea is that I consider no from square and no to square in updating the >>>>>attack table. >>>>> >>>>>I look at a move as a sequence of add piece to square and remove the piece from >>>>>square and I have function to update the attack table when I add piece or remove >>>>>piece. >>>>> >>>>>Uri >>>> >>>>That doesn't change anything. >>>>When you remove the piece (the piece on the from-square) don't you extend the >>>>attackers to that piece (1b above) then? >>>>/Peter >>> >>>that seemed to be the big problem in incremental attack updating to me. you have >>>to remember the attacks for all sliders, and if either the from or the to square >>>of your move coincides with a slider attack, you have to update the attacks of >>>this slider. what a bother... >>> >>>cheers >>> martin >> >>Yes it is... >>Basically one need 4 functions: >>Insert_attacks_from(sq) >>Remove_attacks_from(sq) >>Extend_attacks_to(sq) >>Cut_attacks_to(sq) >>to be used for different moves. >>Then there are all the optimistaions that can be done! >>For instance a capture move to e4 doesn't need the Cut_attacks_to(e4). >>/Peter > >I do it only with 2 functions >I understand your functions but your from functions is for me only one function >that addpiece and your to function is one function that delete piece. > >With your functions it is possible to look at a capture as doing only 2 of the 4 >functions so maybe it is better. > >Uri I looked now at my code and I see that there is a reason for the fact that I do not have 4 functions. For example When I add a bishop to my board I do not like to do Remove_attacks_from for diagnols of the bishop because it is a waste of time when I know that I plan later to add attack information and it is better to change the attack information for the diagnols of the bishop. Uri
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.