Mam problem z algorytmem rozwiązującym problem skoczka. Nie wiem jak zapisywać miejsca gdzie skoczek już był. Myślałem, żeby zapisywać w tablicy numer skoku, ale nie wiem jak to zrealizować w mojej funkcji. Bardzo proszę o wskazówkę
#include <iostream>
#include <math.h>
using namespace std;
const int N=10;
int szachownica[N][N];
int ruchy[4]={-2, -1, 1, 2}; //ruchy skoczka
void zeruj(){ //zerowanie szachownicy
for (int g=0; g<N; g++)
{ for(int k=0; k<N; k++)
{
szachownica[g][k]=0;
}
}
}
bool mozliwe( int nw, int nk) //czy możliwy jest skok
{
if (nw>=N or nk>=N or nw<0 or nk<0) return false;
if (szachownica[nw][nk]!=0) return false;
return true;
}
bool skoczek(int w, int k, int nr, )
{ if(nr>=N*N) return true;
for (int i=0; i<4; i++)
for (int j=0; j<4; j++){
{ if (abs(ruchy[i])!=abs(ruchy[j]))
//generowanie mozliwych ruhcow
if (mozliwe(w+ruchy[i], w+ruchy[j])) skoczek(w+ruchy[i], w+ruchy[j], nr+1);
else return false;
}
}}
int main()
{zeruj();
cout<< skoczek (3, 3, 1);
}