我正在解决这个问题,如果我有这样的话,我会被困在另外两个问题上。我不确定如何检查 b到g 或 2-7 。我也很困惑如何检查是否所有8个点都可用。在使用if和for循环迭代或检查代码时,我总是感到困惑。这是我到目前为止: 问题: http://codeforces.com/problemset/problem/710/a
到目前为止代码:
#include <iostream>
#include <string>
using namespace std;
int main(){
string c;
cin >> c;
if(c == "a8" || c == "h8" || c == "a1" || c == h1){
cout << "3 moves only available\n" << endl;
}
// confused on this case
if(c == c[0]( ){
cout << "5 moves only available\n" << endl;
}
// and this case
if(c ==){
cout << "all 8 moves are available\n" << endl;
}
}
答案 0 :(得分:0)
首先,h1
应该是引号,因为它是一个字符串文字,应该是"h1"
。
其次,只有5次移动的情况是沿着板的侧面(但不是角落)。因此,您只需要检查文件(列)是'a'
还是'h'
,还是排名(行)是'1'
还是'8'
。使用else if
缩短为代码,以便在角落时不输出两次。
所以你的第二个案例可能是这样的:
else if (c[0] == 'a' || c[0] == 'h' || c[1] == '1' || c[1] == '8){
cout << "5 moves only available\n" << endl;
}
最后一个案例就是:
else{
cout << "all 8 moves only available\n" << endl;
}
所有其他案件已经处理