Do you reach many, do you reach one? def knight_jump(knight, start, end): An ordinary chess knight on a two-dimensional board of squares can make an “L-move” into up to eight possible neighbours. However, we can generalize the entire chessboard into k dimensions from just the puny two. A natural extension of the knight's move to keep moves symmetric with respect to these dimensions is to define the possible moves as some k-tuple of strictly decreasing nonnegative integer offsets. Each one of these k offsets must be used for exactly one dimension of your choice during the move, either as a positive or a negative version. For example, the three-dimensional (4,3,1)-knight makes its way by first moving four steps along any one of the three dimensions, then three steps along any other dimension, and then one step along the remaining dimension, whichever dimensions that was. These steps are considered to be performed together as a single jump that does not visit or is blocked by any of the intermediate squares. Given the start and end positions as k-tuples of integer coordinates, determine whether the knight can get from start to end in a single jump. knight start end Expected result (2, 1) (12, 10) (11, 12) True (7, 5, 1) (15, 11, 16) (8, 12, 11) True (9, 7, 6, 5, 1) (19, 12, 14, 11, 20) (24, 3, 20, 11, 13) False
Do you reach many, do you reach one?
def knight_jump(knight, start, end):
An ordinary chess knight on a two-dimensional board of squares can make an “L-move” into up to eight possible neighbours. However, we can generalize the entire chessboard into k dimensions from just the puny two. A natural extension of the knight's move to keep moves symmetric with respect to these dimensions is to define the possible moves as some k-tuple of strictly decreasing nonnegative integer offsets. Each one of these k offsets must be used for exactly one dimension of your choice during the move, either as a positive or a negative version.
For example, the three-dimensional (4,3,1)-knight makes its way by first moving four steps along any one of the three dimensions, then three steps along any other dimension, and then one step along the remaining dimension, whichever dimensions that was. These steps are considered to be performed together as a single jump that does not visit or is blocked by any of the intermediate squares. Given the start and end positions as k-tuples of integer coordinates, determine whether the knight can get from start to end in a single jump.
knight | start | end | Expected result |
(2, 1) | (12, 10) | (11, 12) | True |
(7, 5, 1) | (15, 11, 16) | (8, 12, 11) | True |
(9, 7, 6, 5, 1) |
(19, 12, 14, 11, 20) |
(24, 3, 20, 11, 13) |
False |
Trending now
This is a popular solution!
Step by step
Solved in 2 steps