# mission2a.adb

    with KakoRobot ;
    with Gada.Text_IO ;

    procedure Mission2a is

       package K renames KakoRobot ;
       package Txt renames GAda.Text_IO ;

       -- Amène le robot NUM jusqu'à sa cible
       -- Algorithme : monter tout droit tant que l'on peut, puis un pas à droite.
       procedure Sauvez_Willy (Num : Integer) is
          -- Compteur du nombre de pas
          Nb_Deplacements : Integer := 0 ;
       begin
          -- Tant que la voie est libre, on avance
          while K.Scanner (Num, K.Nord) = K.Rien loop
             K.Deplacer (Num, K.Nord) ;
             Nb_Deplacements := Nb_Deplacements + 1 ;
          end loop ;

          -- Lorsqu'on ne peut plus avancer, la cible est à droite
          K.Deplacer (Num, K.Est) ;

          Txt.Put_Line ("Nombre de déplacements : " & Integer'Image(Nb_Deplacements + 1)) ;
       end Sauvez_Willy ;

    begin

       -- Sauver tous les robots
       for I in 1..K.Nombre_Robots loop
          Sauvez_Willy (I) ;
       end loop ;

    end Mission2a ;