Witam,
Napisałem algorytm który rozwiązuje problem konika szachowego. Jednak nie rozwiązuje go w sposób poprawny. A mianowicie nie mam pojęcia jak sprawić żeby algorytm się "cofał" do ostatniego pola na szachownicy i wykona inny ruch kiedy napotka pole z którego nie może wykonać ruchu. W tej chwili po prostu wstawia 0 w pola w których według mnie nie ma prawa być.
int solve(int x, int y, int numer_ruch) { int move = 0; if(numer_ruch == SIZE*SIZE) { return 1; } else if (szachownica[x][y] == 0) { while(move < 8) { szachownica[x][y] = numer_ruch; if ((ruchX(x, move) != -1) && (ruchY(y, move) != -1)) if(solve(ruchX(x, move), ruchY(y, move), numer_ruch+1)) return 1; move++; } szachownica[x][y]=0; } return 0; }
Może ktoś wytłumaczyć co robię źle?