def grimper(surface:list,i_deb:int,j_deb:int)->list:
    """surface est une liste de listes d'entiers de taille carrée donnant la hauteur de chaque case.
    i_deb et j_deb donne la ligne et la colonne de la case de départ du robot
    Fonction renvoyant la succession des déplacements du robot avant son arrêt."""
    longueur = len(surface)
    i_pos = i_deb  # index de la ligne donnant la position du robot
    j_pos = j_deb  # index sur cette ligne de la position du robot
    hauteur_pos = surface[i_pos][j_pos] # hauteur de la position du robot
    deplacement_possible = ...
    deplacements = []
    while deplacement_possible:
        # booléen qui informe si une case de hauteur plus grande a été trouvée parmi les 4 possibles
        trouve = False  
        # étude de la case au-dessus de la position actuelle
        if i_pos>0 and surface[i_pos-1][j_pos]>hauteur_pos:
            hauteur_pos = surface[i_pos-1][j_pos]
            direction =...
            # mémorisation de la position plus intéressante
            i_temp = i_pos-1   
            j_temp = j_pos
            trouve = ...
        # étude de la case en dessous de la position actuelle
        if i_pos... and surface[i_pos+1][j_pos]>hauteur_pos:
            hauteur_pos = surface[i_pos+1][j_pos]
            direction ='B'
            i_temp = i_pos-1
            j_temp = j_pos
            trouve = True
        # étude de la case à droite de la position actuelle
        if ... and surface[...][...]>hauteur_pos:
            hauteur_pos = surface[...][...]
            direction ='D'
            i_temp = ...
            j_temp = ...
            trouve = True
        # étude de la case à gauche de la position actuelle
        if ... and surface[...][...]>hauteur_pos:
            hauteur_pos = surface[...][...]
            direction ='G'
            i_temp = ...
            j_temp = ...
            trouve = True
        if ...:
            deplacement_possible = False
        else:
            deplacements.append(...)
            i_pos = ...
            j_pos = ...
    return deplacements   
