示例#1
0
文件: move.c 项目: mplaton1/IPP
void copyMoveData(Move move1, Move move2) {
    if (move2->isPieceCreated != NULL) {
        move1->isPieceCreated = pieceCopy(move2->isPieceCreated);
    }
    else {
        move1->isPieceCreated = NULL;
    }
    move1->isPieceRemoved = move2->isPieceRemoved;

    move1->movedPiece = move2->movedPiece;

    move1->command = move2->command;
    move1->xFrom = move2->xFrom;
    move1->xTo = move2->xTo;
    move1->yFrom = move2->yFrom;
    move1->yTo = move2->yTo;
    move1->currentPieceTurnAfter = move2->currentPieceTurnAfter;
    move1->currentPieceTurnBefore = move2->currentPieceTurnBefore;
}
示例#2
0
bool ChessMove::PutsInCheck(const ChessBoard& board) const{
    ChessBoard boardCopy(board);
    ChessPiece* pieceCopy(board.GetPiece(startX,startY));
    return (boardCopy.DoMove(*this))->InCheck(pieceCopy->GetColor());
}