码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-03-12 16:44:57      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

#include<iostream>
using namespace std;
//设置一些计算的宏
typedef char bytes;
#define BYTES_LENGTH 255//一个字节的数据大小
#define BYTES_HALF_LENGTH 4//半个字节的位数
//#define RHALF (BYTES_LENGTH>>BYTES_HALF_LENGTH)//右半边为00001111
#define RHALF 15
//#define LHALF (BYTES_LENGTH<<BYTES_HALF_LENGTH)//左半边为11110000
#define LHALF 240
#define STORED_R(b,n) (b=(n|(b&LHALF)))//将n存入到b右半边中
#define STORED_L(b,n) (b=((n<<BYTES_HALF_LENGTH)|(b&RHALF)))//将n存入到b的左半边中
#define GET_R(b) (b&RHALF)//得到b的右边的四位
#define GET_L(b) ((b&LHALF)>>BYTES_HALF_LENGTH)//得到b的左边的四位
#define MOV_WITH 3//棋子的移动宽度
int main()
{
	bytes b=0;
	for (STORED_R(b,1);GET_R(b)<=MOV_WITH*MOV_WITH;STORED_R(b,GET_R(b)+1))
	{
		for(STORED_L(b,1);GET_L(b)<=MOV_WITH*MOV_WITH;STORED_L(b,GET_L(b)+1))
		{
			if(GET_R(b)%MOV_WITH!=GET_L(b)%MOV_WITH)
			{
				cout<<GET_R(b)<<‘ ‘<<GET_L(b)<<endl;
			}
		}
	}
	system("pause");
	return 1;
}

  

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

标签:

原文地址:http://www.cnblogs.com/yanliang12138/p/4332803.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!