class program { define halfturn() { turnleft(); turnleft(); } define turnright() { iterate( 3 ) turnleft(); } define caminaAPared() { while( frontIsClear ) move(); } define leftmove() { turnleft(); move(); } define buscaCentro() { if( frontIsClear ) { move(); move(); buscaCentro(); move(); } else halfturn(); } define bajaCalle() { caminaAPared(); halfturn(); while( leftIsBlocked && frontIsClear ) move(); turnleft(); } define colocaCentro() { turnleft(); caminaAPared(); halfturn(); buscaCentro(); putbeeper(); } program() { colocaCentro(); bajaCalle(); while( frontIsClear ) { move(); colocaCentro(); bajaCalle(); } turnoff(); } }