
если плохо видно то
вот
Не могу подсчитать шахматные номера на матрице 4 на 3. Не могу сохранить место шага коня и идти от этого шага дальше. Мне нужна рекурсия? Тогда скорее всего нужна функция, не могу понять какие аргументы нужны функции. Если раскомментить строчки в коде, то он покажет верные допустимые шаги на один раз.
int x=0,y=0;
for(int i=0; i<4;i++) {
for(int j=0; j<3;j++) {
x=i;
y=j;
a[3][j] = 0;
cout<<a[i][j]<<endl;
if (x + t < 4 && y + o < 3) { c++; x=i+t; y=j+o; printf("a[%d][%d] - %d\n", x, y, a[x][y]); /*x=i;y=j;*/ }
if (x + t < 4 && y - o > -1) { c++; x=i+t; y=j-o; printf("a[%d][%d] - %d\n", x, y, a[x][y]); /*x=i;y=j;*/ }
if (x + o < 4 && y + t < 3) { c++; x=i+o; y=j+t; printf("a[%d][%d] - %d\n", x, y, a[x][y]); /*x=i;y=j;*/ }
if (x + o < 4 && y - t > -1) { c++; x=i+o; y=j-t; printf("a[%d][%d] - %d\n", x, y, a[x][y]); /*x=i;y=j;*/ }
if (x - t > -1 && y + o < 3) { c++; x=i-t; y=j+o; printf("a[%d][%d] - %d\n", x, y, a[x][y]); /*x=i;y=j;*/ }
if (x - o > -1 && y + t < 3) { c++; x=i-o; y=j+t; printf("a[%d][%d] - %d\n", x, y, a[x][y]); /*x=i;y=j;*/ }
if (x - t > -1 && y - o > -1) { c++; x=i-t; y=j-o; printf("a[%d][%d] - %d\n", x, y, a[x][y]); /*x=i;y=j;*/ }
if (x - o > -1 && y - t > -1) { c++; x=i-o; y=j-t; printf("a[%d][%d] - %d\n", x, y, a[x][y]); /*x=i;y=j;*/ }
}
}
результат: (уходит в минус, хотя условие не должно позволять)
1
a[2][1] - 8
a[-2][1] - 0
2
a[2][2] - 9
a[1][-1] - 3
a[-1][3] - 1
3
a[2][1] - 8
a[-2][3] - 0
4
a[3][1] - 0
a[-1][1] - 2
5
a[3][2] - 0
a[-1][0] - 0
6
a[3][1] - 0
a[-1][3] - 1
7
a[3][2] - 0
a[0][-1] - 1
8
a[0][2] - 3
9
a[3][0] - 0
a[0][3] - 4
0
a[1][1] - 5
0
a[1][2] - 6
a[2][-1] - 6
0
a[1][1] - 5