编程之美之中国象棋将帅问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24003469/article/details/82710000
#include<iostream>
#define HALF_BITS_LENGTH 4
#define FULLMASK 255
#define LMASK (FULLMASK << HALF_BITS_LENGTH)
#define RMASK (FULLMASK >> HALF_BITS_LENGTH)
#define RSET(b,n) (b = ((LMASK & b)|(n)))
#define LSET(b,n) (b = ((RMASK &b)|((n)<< HALF_BITS_LENGTH)))
#define RGET(b) (RMASK & b)
#define LGET(b) ((LMASK & b)>> HALF_BITS_LENGTH)
#define GRIDW 3
using namespace std;
int main()
{
    unsigned char b;
    for (LSET(b,1);LGET(b)<=GRIDW * GRIDW;LSET(b,LGET(b)+1))
        for(RSET(b,1);RGET(b)<=GRIDW * GRIDW;RSET(b,RGET(b)+1))
            if((LGET(b) % GRIDW)!= (RGET(b) % GRIDW))
                cout << LGET(b) <<"     "<<RGET(b)<<endl;
                //printf("%d  %d  \n",LGET(b),RGET(b));
                //printf("%d  ",RGET(b));
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_24003469/article/details/82710000
今日推荐