今天Eddie新买了一副象棋
说起下象棋,Eddie爷爷在Eddie很小的时候就开始教他了
但今天Eddie有个新的想法,想在围棋棋盘上研究一下如何下象棋
这个想法真的很不错,也许可以去申请一项专利
我们知道围棋棋盘是19*19,如下图所示
我们都知道象棋中的“马”是按“日”字形走的,
举个例子,比如当前马(不妨称之为H)在上述棋盘中的位置为(10,10)
那么H下一步可以跳到如下位置中的其中一个
(12,11), (12,9), (11,8), (9,8),(8,9),(8,11),(9,12),(11,12)
现规定象棋棋盘左上角坐标为(1,1),右上角坐标为(1,19),
左下角坐标为(19,1),右下角坐标为(19,19)
要确保H所走的下一步不能超出棋盘的边界。
#include<bits/stdc++.h> using namespace std; //下一步可能跳到的八个位置 int deltax[8]={-1,1,-2,2,-2,2,-1,1}; int deltay[8]={____(1)___________}; int main(){ int x,y,nx,ny; cin>>x>>y; for(int i=0;i<8;i++){ nx=x+deltax[i]; ny=y+deltay[i]; //判断是否在有效范围内 if(_____(2)________) { cout<<nx<<" "<<ny<<endl; } } return 0; }