Author: Omid David Tabibi
Date: 01:37:17 05/05/04
Go up one level in this thread
On May 05, 2004 at 04:35:54, Omid David Tabibi wrote: >On May 05, 2004 at 04:20:18, Daniel Shawul wrote: > >> >>void BOARD::makemove(MOVE* move) >>{ >> >> RemoveInfluence(Player,pic,from); >> >> //capture >> if(move->is_capture()) >> { >> if(move->is_enpassant()) >> { >> >> RemoveInfluence(opp,pawn,ep_sq); >> >> AddInfluence(Player,pic,to); >> >> } >> else >> { >> RemoveInfluence(opp,move->get_capture(),to); >> >> } >> >> } >> >> //castling >> if(move->is_castling()) >> { >> >> AddInfluence(Player,king,to); >> >> RemoveInfluence(Player,rook,fromc); >> >> AddInfluence(Player,rook,toc); >> >> } >> //promotion >> else if(move->is_promotion()) >> { >> AddInfluence(Player,move->get_promote(),to); >> } >> else >> { >> if(!move->is_enpassant()) >> AddInfluence(Player,pic,to); >> } >> >>} >> >> >> >>void BOARD::takeback(MOVE* move) >>{ >> >> //promotion >> if(move->is_promotion()) >> { >> RemoveInfluence(Player,move->get_promote(),from); >> >> } >> //castling >> else if(move->is_castling()) >> { >> RemoveInfluence(Player,king,from); >> >> >> RemoveInfluence(Player,rook,fromc); >> >> AddInfluence(Player,rook,toc); >> >> >> } >> else >> RemoveInfluence(Player,pic,from); >> >> AddInfluence(Player,pic,to); >> >> //captures >> if(move->is_capture()) >> { >> if(move->is_enpassant()) >> { >> sq=from + ((from>to) ? DD : UU); >> >> AddInfluence(opp,move->get_capture(),sq); >> } >> else >> { >> sq=from; >> >> AddInfluence(opp,move->get_capture(),from); >> } >> } >>} >> >>AddInfluence(int col ,int pic, int sq) >>{ >> 1. remove attack of piece at sq >> 2. shorten slider attackts through sq >>} >>RemoveInfluence(int col ,int pic, int sq) >>{ >> 1. Add attack of piece at sq >> 2. extend slider attacks through sq >>} For example, just optimizing these last two functions will considerably speed up your update, as these functions are called many times. > > >Incremental update will be better only if it is done efficiently. You must use a >good profiler (e.g., Intel VTune) to find the bottlenecks and optimize your >implementation. Many times the profiler will indicate hotspots that cannot be >easily noticed without profiling.
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.