iniciar-programa
    define-nueva-instruccion gira(n) como inicio
      repetir n veces
        gira-izquierda;
    fin;

    define-nueva-instruccion ir11 como inicio
      mientras no-orientado-al-oeste hacer
        gira(1);
      mientras frente-libre hacer
        avanza;
      gira(1);                   
      mientras frente-libre hacer
        avanza;
      gira(2);
    fin;

    define-nueva-instruccion cpaso-tortuga(n) como inicio
      si junto-a-zumbador entonces inicio
        coge-zumbador;
        cpaso-tortuga(sucede(n));
      fin sino inicio
        avanza;
        avanza;
        gira(3);
        mientras no-junto-a-zumbador hacer
          avanza;
        coge-zumbador;
        repetir n veces
          deja-zumbador;
      fin;
    fin;

    define-nueva-instruccion paso-conejo(n) como inicio
      si junto-a-zumbador entonces inicio
        coge-zumbador;
        paso-conejo(sucede(n));
      fin sino inicio
        avanza;
        avanza;
        gira(3);
        repetir n veces
          deja-zumbador;
      fin;
    fin;

    define-nueva-instruccion caminaconejo(n) como inicio
      si junto-a-zumbador entonces inicio
        coge-zumbador;
        caminaconejo(sucede(n));
      fin sino inicio
        repetir n veces
          avanza;
        repetir n veces
          deja-zumbador;
      fin;
    fin;

    define-nueva-instruccion caminatortuga(n) como inicio
      si junto-a-zumbador entonces inicio
        coge-zumbador;
        caminatortuga(sucede(n));
      fin sino inicio
        repetir n veces
          avanza;
        repetir n veces
          deja-zumbador;
      fin;
    fin;

    define-nueva-instruccion corre(n) como inicio
      caminatortuga(0);
      ir11;
      repetir 4 veces
        avanza;
      gira(3);
      mientras no-junto-a-zumbador hacer
        avanza;
      caminaconejo(0);
    fin;

    define-nueva-instruccion compara(n) como inicio
      corre(0);
      gira(3);
      avanza;
      si junto-a-zumbador entonces inicio
        ir11;
        repetir n veces
          deja-zumbador;
        apagate;
      fin sino inicio
        gira(3);
        mientras frente-libre hacer
          avanza;
        gira(2);
        mientras no-junto-a-zumbador hacer
          avanza;
        compara(sucede(n));
      fin;
    fin;

    inicia-ejecucion
        avanza;
        avanza;
        paso-conejo(0);
        gira(3);
        avanza;
        avanza;
        avanza;
        gira(2);
        cpaso-tortuga(0);
        compara(1);
        apagate;
    termina-ejecucion
finalizar-programa
