Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: some pseudo code

Author: Omid David Tabibi

Date: 01:35:54 05/05/04

Go up one level in this thread


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
>}


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.01 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.