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 ;