struct move {
int x;
int y;
int StepNumber;
};
queue <move> MQue;
move Cur;
Cur.StepNumber=CurrMove.StepNumber; Cur.x=CurrMove.x+steps[i][1];
Cur.y=CurrMove.y+steps[i][2];
MQue.push(Cur);
CurrMove=MQue.front(); MQue.pop(); cout << MQue.back().StepNumber;
int steps[8][2] = {{1,-2},{1,2},{-1,-2},{-1,2}, {2,-1},{2,1},{-2,-1},{-2,1}};