@Override
    public void executeMove(ChessBoard board) {
        board.setCoinAt(moved, end);
        board.setCoinAt(rook, getRookEndPosition());
        board.setCoinAt(Coin.Empty, start);
        board.setCoinAt(Coin.Empty, getRookStartPosition());
        moved.Moved();
        rook.Moved();
        is_executed = true;
    }