您的位置:首页 > 其它

poj 1657 Distance on Chessboard

2012-06-10 15:55 375 查看
//简单的模拟题,需要对每一个走子的规则有一个全面而准确的模拟,很容易漏掉情况!
#include <iostream>
#include <cmath>
#include <string>
using namespace std;

int main()
{
int tc, x, y;
string pos1, pos2;
cin >> tc;
while (tc--)
{
cin >> pos1 >> pos2;
x = abs(float((pos1[0]-48)-(pos2[0]-48)));
y = abs(float((pos1[1]-48)-(pos2[1]-48)));
if (x == 0 && y == 0)//当起始位置和终止位置一样的时候
cout << 0 << " " << 0  << " " << 0 << " " << 0 << endl;
else
{
//王的步数
if (x < y)
cout << y << " ";
else
cout << x << " ";
//后的步数
if (x == y || x == 0 || y == 0)
cout << 1 << " ";
else
cout << 2 << " ";
//车的步数
if (x == 0 || y == 0)
cout << 1 << " ";
else
cout << 2 << " ";
//象的步数
if (abs(x-y) % 2 != 0)
cout << "Inf" << endl;
else if (x == y)
cout << 1 << endl;
else
cout << 2 << endl;
}
}
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: