class program { define turnright() { iterate( 3 ) turnleft(); } define halfturn() { turnleft(); turnleft(); } define moveback() { halfturn(); move(); } define este() { while(notFacingEast) turnleft(); } define recoge() { turnright(); move(); while(nextToABeeper) { pickbeeper(); moveback(); putbeeper(); moveback(); } moveback(); turnright(); } define suma1() { moveback(); move(); while(nextToABeeper) { pickbeeper(); turnright(); move(); putbeeper(); moveback(); turnleft(); move(); move(); putbeeper(); moveback(); move(); } recoge(); } define suma2() { moveback(); halfturn(); while(nextToABeeper) { pickbeeper(); turnright(); move(); putbeeper(); moveback(); turnleft(); move(); putbeeper(); moveback(); } recoge(); } define proceso() { while(anyBeepersInBeeperBag) { suma1(); suma2(); moveback(); move(); } } program() { if(anyBeepersInBeeperBag) { putbeeper(); este(); move(); if(anyBeepersInBeeperBag) { putbeeper(); move(); } } proceso(); turnoff(); } }