I am working on the famous knight tour problem in python using the backtracking algorithm. I'm confused as to why the computer goes back to the last working case if the current case returns a False value. Let me elaborate.
In the above program, the knight_tour() function calls on the knight_tour_helper() function which starts from index[0][0] and checks all possible combinations from there on and backtracks if reaches a dead end. I'm unable to understand what role the boolean values hold here. For example, if the knight_tour_helper() function returns False(line 11), then what does the computer do? Why does it backtrack? What happens if the function returns False from line 5? Does it move on to the next values of x,y and why? Also when does this loop end, as we are printing the complete board at the end(line 6), so the knight_tour_helper() function must end somewhere and so we are able to print the final board. Why does the function stop here? My guess is that because counter reaches the value n*n, so the function stops, but why does it stop here? Does the boolean value True make it stop or some other influence. Why does the function work recursively since all we are retuning is True/False. A recursive function works like f(x)=f(x-1)+f(x-2). How is this applicable here? The knight_tour_helper() is called again at line 8 to check a condition. How are these two events equivalent?
To put it concisely, I guess I am asking for the proper sequence of events the computer performs based on this algorithm and what happens at each step in detail with the proper reasoning.
I hope I have made my doubt clear. Let me know in the comments if any clarification is required. Any help here will be much appreciated.