Beispiel #1
0
PiecePtr IPiece::createPiece(Type type, Color color, Square square)
{
    switch(type) {
    case PAWN: return PiecePtr(new Pawn(color, square));
    default :return PiecePtr(new NullPiece(color, square));
    }
}
Beispiel #2
0
PiecePtr IPiece::createPiece(char symbol, Square square)
{

    switch (symbol) {
    case 'P': return PiecePtr(new Pawn(WHITE, square));
    case 'p': return PiecePtr(new Pawn(BLACK, square));
    default :return PiecePtr(new NullPiece(WHITE, square));
    }
}
Beispiel #3
0
    BitCache::PiecePtr BitCache::FetchNewPiece()
    {
        if (cache_piece_.size() > max_cache_pieces_)
        {
            CachePiece::iterator it = GetOldestPiece();
            if (it != cache_piece_.end())
            {
                PiecePtr result = it->second;
                cache_piece_.erase(it);
                result->Clear();
                return result;
            }
        }

        return PiecePtr(new BitPiece(piece_length_));
    }