diff --git a/4_9_Exercises/Question 4.py b/4_9_Exercises/Question 4.py new file mode 100644 index 0000000000000000000000000000000000000000..b5a713274b0b6b38e17ef6a122ca49f56e5f6079 --- /dev/null +++ b/4_9_Exercises/Question 4.py @@ -0,0 +1,29 @@ +def np(x, y, trace=None): + if trace is None: + trace = [(0, 0)] + current = trace[-1] + if current in trace[:-1]: + return 0 + if current[0] > x or current[1] > y or current[0] < 0 or current[1] < 0: + return 0 + if (current[0], current[1]) == (x, y) and len(trace) > 1: + print(current[0], x, current[1], y, " this is in success") + print(trace) + return 1 + if x + y < 2: + return 1 + + x_1, y_1 = (current[0], current[1] + 1) if current[1] < y else (current[0], current[1]) + x_2, y_2 = (current[0] + 1, current[1]) if current[0] < x else (current[0], current[1]) + x_3, y_3 = current[0] - 1, current[1] + x_4, y_4 = current[0], current[1] - 1 + + trace_1 = trace + [(x_1, y_1)] + trace_2 = trace + [(x_2, y_2)] + trace_3 = trace + [(x_3, y_3)] + trace_4 = trace + [(x_4, y_4)] + + return np(x, y, trace_1) + \ + np(x, y, trace_2) + \ + np(x, y, trace_3) + \ + np(x, y, trace_4)