Beispiel #1
0
ChessBoard* ChessBoard::Copy()
{
	ChessBoard* ret = new ChessBoard();
	
#ifdef PRINT_MEMORY
	printf("Created chess board at:%i\n", ret);
	fflush(stdout);
#endif
	
	ret->SetWhitePlayer( WhitePlayer::GetInstance()->Copy() );
	ret->SetBlackPlayer( BlackPlayer::GetInstance()->Copy() );
	
	
	
	ChessLog* LogInstance = ChessLog::GetInstance()->Copy();
	
	ret->SetChessLog(LogInstance);
	
	LogInstance->SetChessBoard(ret);
	
	ret->GetWhitePlayer()->SetPieceBoardPointer(ret);
	
	//printf("Thread white player");
	//fflush(stdout);
	//ret->GetWhitePlayer()->PrintPlayer();
	
	ret->GetBlackPlayer()->SetPieceBoardPointer(ret);
	
	//ret->GetBlackPlayer()->PrintPlayer();
	
	ret->ClearBoard();
	
	ret->GetWhitePlayer()->AddPiecesToBoard();
	ret->GetBlackPlayer()->AddPiecesToBoard();
	
	//ret->PrintBoard();
	
	ret->bWhiteMove = bWhiteMove;
	
	fflush(stdout);
	
	return ret;
}