Part 1 was missing the "y_diff.abs() == x_diff.abs()" condition in Pos.move_after(), which made the program show the wrong output at first.