Implement an algorithm to calculate the maximum number of moves for a chess piece on a telephone keypad at LemonEdge.
Assume the piece is a chess knight, movement follows the standard knight pattern, and a digit may not be visited more than once. Implement max_knight_moves(start_digit), returning the maximum number of valid moves from the given digit across the 0 to 9 telephone keypad; * and # are unavailable.
def max_knight_moves(start_digit):