如果检查位置的条件

时间:2016-09-10 04:15:26

标签: c++

我正在解决这个问题,如果我有这样的话,我会被困在另外两个问题上。我不确定如何检查 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;
    }

}

1 个答案:

答案 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;
}

所有其他案件已经处理