iniciar-programa
define-nueva-instruccion avz como
inicio
repetir 2 veces
inicio
si frente-libre entonces
inicio
avanza;
fin
sino
inicio
si izquierda-libre entonces
inicio
gira-izquierda;
mientras frente-libre y derecha-bloqueada hacer avanza;
fin
sino
inicio
repetir 3 veces gira-izquierda;
mientras frente-libre y izquierda-bloqueada hacer avanza;
fin;
mientras no orientado-al-este hacer gira-izquierda;
avanza;
fin;
fin;
si frente-bloqueado entonces
inicio
si izquierda-libre entonces
inicio
gira-izquierda;
mientras frente-libre y derecha-bloqueada hacer avanza;
fin
sino
inicio
repetir 3 veces gira-izquierda;
mientras frente-libre y izquierda-bloqueada hacer avanza;
fin;
mientras frente-libre y izquierda-bloqueada hacer avanza;
mientras no orientado-al-este hacer gira-izquierda;
fin;
si frente-libre entonces
inicio
avz;
fin
sino repetir 2 veces gira-izquierda;
si frente-libre entonces
inicio
avanza;
fin
sino
inicio
si izquierda-libre y derecha-bloqueada entonces
inicio
gira-izquierda;
mientras frente-libre y derecha-bloqueada hacer avanza;
fin
sino
inicio
repetir 3 veces gira-izquierda;
mientras frente-libre y izquierda-bloqueada hacer avanza;
fin;
mientras no orientado-al-oeste hacer gira-izquierda;
avanza;
fin;
fin;
inicia-ejecucion
mientras no orientado-al-este hacer gira-izquierda;
si frente-libre o izquierda-libre entonces avz;
mientras no orientado-al-sur hacer gira-izquierda;
mientras frente-libre hacer avanza;
apagate;
termina-ejecucion
finalizar-programa
