class program { define half-turn() { turnleft(); turnleft(); } define turnright() { iterate(3) { turnleft(); } } define putbeepers(n) { iterate (n) { putbeeper(); } } define go-back() { if (nextToABeeper) { pickbeeper(); go-back(); putbeeper(); } else { turnright(); iterate (3) { if (notNextToABeeper && frontIsClear) { move(); if (notNextToABeeper) { half-turn(); move(); half-turn(); } } if (notNextToABeeper) { turnleft(); } } if (nextToABeeper) { go-back(); move(); } else { while (notFacingSouth) { turnleft(); } move(); turnleft(); } } } define search() { if (nextToABeeper) { half-turn(); move(); go-back(); turnoff(); } turnright(); iterate (3) { if (frontIsClear) { if (facingNorth) { putbeepers(2); } else if (facingEast) { putbeepers(3); } else if (facingSouth) { putbeepers(4); } else if (facingWest) { putbeepers(5); } move(); search(); move(); half-turn(); while (nextToABeeper) { pickbeeper(); } } turnleft(); } } program() { search(); turnoff(); } }