iniciar-programa
Define-nueva-instruccion Regresa como inicio
 Repetir 3 veces gira-izquierda;
 avanza;
 Repetir 3 veces gira-izquierda;
 avanza;
 avanza;
 Gira-izquierda;
 avanza;
Fin;
Define-nueva-instruccion UbicaEsquinaInicial(n) como inicio
  avanza;
  Gira-izquierda;
  Repetir n veces avanza;
  Repetir 3 veces gira-izquierda;
fin;

Define-nueva-instruccion BuscaEscalonMasAlto como inicio
 Mientras Junto-a-zumbador y orientado-al-norte hacer inicio
   Si junto-a-zumbador y izquierda-libre entonces inicio
      UbicaEsquinaInicial(2);
      Avanza;
       Si no-junto-a-zumbador entonces
         Regresa;
   fin
    sino
     Repetir  3 veces gira-izquierda;
 fin;
fin;
Define-nueva-instruccion lados(n) como inicio
  Repetir 4 veces inicio
    Repetir n veces inicio
      Si junto-a-zumbador entonces
         Repetir 2 veces Coge-zumbador;
      avanza;
    fin;
     REpetir 2 veces gira-izquierda;
     avanza;
     Repetir 3 veces gira-izquierda;
  fin;
Fin;
Define-nueva-instruccion longitud(n) como inicio
  Si junto-a-zumbador y orientado-al-oeste  entonces inicio
     avanza;
     Longitud(sucede(n));
  fin
  Sino
    inicio
       Deja-zumbador;
       gira-izquierda;
       avanzA;
       lados(n);
    fin;
Fin;
Define-nueva-instruccion Ancho como inicio
   Coge-zumbador;
   avanza;
    Mientras Frente-libre y junto-a-zumbador hacer
     avanza;
    Si no-junto-a-zumbador entonces  inicio
      Repetir 2 veces gira-izquierda;
      avanza;
    Fin
     sino
      Repetir 2 veces gira-izquierda;
    Longitud(0);
    avanza;
    gira-izquierda;
    avanza;
Fin;
Define-nueva-instruccion EscalonValido como inicio
  SI orientado-al-este entonces inicio
     Repetir 3 veces gira-izquierda;
     avanza;
     Gira-izquierda;
     avanza;
     avanza;
     Si junto-a-zumbador  entonces inicio
       coge-zumbador;
        si junto-a-zumbador entonces inicio
          deja-zumbador;
          Repetir 2 veces gira-izquierda;
          avanza;
          avanza;
          Repetir 3 veces gira-izquierda;
          avanza;
          Repetir 3 veces gira-izquierda;
          avanza;
          ANcho;
         fin
         Sino
          Gira-izquierda;
    fin
    sino
     inicio
      Gira-izquierda;
       avanza;
      Gira-izquierda;
       avanza;
      Repetir 2 veces gira-izquierda;
     Ancho;
     Fin;
    EscalonValido;
  fin;
FIn;
Define-nueva-instruccion Total como inicio
  Si algun-zumbador-en-la-mochila entonces inicio
    Repetir 2 veces deja-zumbador;
     Total;
     Coge-zumbador;
  fin;
fin;
    inicia-ejecucion
     Gira-izquierda;
      UbicaEsquinaInicial(1);
      BuscaEscalonMasAlto;
      EscalonValido;
      deja-zumbador;
      Gira-izquierda;
      avanza;
      Si junto-a-zumbador entonces
       Repetir 2 veces coge-zumbador;
       Total;
        apagate;
    termina-ejecucion
finalizar-programa
 