Ваша загадка использует только цифры от 0 до 3 для проверки - вы можете легко проверить числа от -1 до 4, чтобы увидеть, какой вывод дается, и «откатить» свою логику - «проверив» свой путь в ваших условиях:
for x in range(-1,5):
for y in range(-1,5):
print(x,y,end=" -> ")
if not ((0 <= x <=3) and (0 <= y <= 3)):
print('A')
elif y < 1 or y > 2:
print('B')
elif x < 1 or x > 2:
print('C')
else:
print('D',x,y)
Выход:
-1 -1 -> A
-1 0 -> A
-1 1 -> A
-1 2 -> A
-1 3 -> A
-1 4 -> A
0 -1 -> A
0 0 -> B
0 1 -> C
0 2 -> C
0 3 -> B
0 4 -> A
1 -1 -> A
1 0 -> B
1 1 -> D 1 1 # here
1 2 -> D 1 2 # here
1 3 -> B
1 4 -> A
2 -1 -> A
2 0 -> B
2 1 -> D 2 1 # here
2 2 -> D 2 2 # here
2 3 -> B
2 4 -> A
3 -1 -> A
3 0 -> B
3 1 -> C
3 2 -> C
3 3 -> B
3 4 -> A
4 -1 -> A
4 0 -> A
4 1 -> A
4 2 -> A
4 3 -> A
4 4 -> A