class program { define halfturn() { turnleft(); turnleft(); } define turnright() { iterate(3) turnleft(); } define backmove() { halfturn(); move(); } define leftmove() { turnleft(); move(); } define caminaABeeper() { while( notNextToABeeper ) move(); } define rellenaCamino() { while( notNextToABeeper ) { putbeeper(); move(); } } define buscaBeeper() { while( notNextToABeeper && frontIsClear ) move(); if( nextToABeeper ) { backmove(); rellenaCamino(); } else { backmove(); caminaABeeper(); } backmove(); } define sigueCamino() { move(); if( notNextToABeeper ) { buscaBeeper(); if( notNextToABeeper ) { backmove(); leftmove(); buscaBeeper(); if( notNextToABeeper ) { backmove(); move(); buscaBeeper(); if( notNextToABeeper ) { backmove(); turnoff(); } } } } } program() { while( nextToABeeper ) sigueCamino(); } }