#include <iostream>
#include <vector>
using namespace std;
// Definimos las posibles posiciones del movimiento del caballo
const int moves[8][2] = {
{2, 1}, {1, 2}, {-1, 2}, {-2, 1},
{-2, -1}, {-1, -2}, {1, -2}, {2, -1}
};
// Función para verificar si la posición es válida
bool isValid(int x, int y, int N) {
return (x >= 0 && x < N && y >= 0 && y < N);
}
// Función para mostrar el tablero
void printBoard(const vector<vector<int>>& board) {
for (const auto& row : board) {
for (int cell : row) {
cout << cell << " ";
}
cout << endl;
}
}
// Función principal para realizar el movimiento del caballo
void knightMove(int x, int y, int N) {
vector<vector<int>> board(N, vector<int>(N, 0));
board[x][y] = 1; // Marcamos la posición inicial
// Intentamos todos los movimientos posibles
for (int i = 0; i < 8; i++) {
int newX = x + moves[i][0];
int newY = y + moves[i][1];
if (isValid(newX, newY, N)) {
board[newX][newY] = 1; // Marcamos la nueva posición
}
}
// Mostramos el tablero
printBoard(board);
}
int main() {
int N = 8; // Tamaño del tablero
int startX = 0; // Posición inicial X
int startY = 0; // Posición inicial Y
knightMove(startX, startY, N);
return 0;
}