Is that portable for 32-bit ints?
(otherwise sq&31 or sq&15 is necessary)
Code: Select all
unsigned int colorOfSquare (unsigned int sq) {
return (0xAA55AA55 >> sq) & 1;
}
Code: Select all
3 3 3 3 3 3 3 3
3 2 2 2 2 2 2 3
3 2 1 1 1 1 2 3
3 2 1 0 0 1 2 3
3 2 1 0 0 1 2 3
3 2 1 1 1 1 2 3
3 2 2 2 2 2 2 3
3 3 3 3 3 3 3 3
Code: Select all
unsigned int centerDistance(unsigned int a) {
const u64 _13 = 0xffffeaabe55be41b;
a ^= (a - 32) >> 27;
return (_13 >> 2*a) & 3;
}
Code: Select all
unsigned int centerDistance(unsigned int a) {
a ^= (a - 32) >> 27;
return ((-8274523 >> a) & 1)
| (( -30842 >> a) & 2);
}
Gerd