class program { define half-turn() { turnleft(); turnleft(); } define turnright() { iterate(3) { turnleft(); } } define go-forward() { if (frontIsClear) { move(); } else { turnoff(); } } define go-left() { if (leftIsClear) { turnleft(); move(); turnright(); } else { turnoff(); } } define go-back() { half-turn(); if (frontIsClear) { move(); half-turn(); } else { half-turn(); turnoff(); } } define step-1() { go-forward(); go-left(); go-forward(); } define step-2() { turnright(); go-forward(); } define step-3() { go-forward(); go-back(); go-back(); } define dance() { pickbeeper(); if (nextToABeeper) { pickbeeper(); if (nextToABeeper) { pickbeeper(); step-3(); } else { step-2(); } } else { step-1(); } } program() { while (nextToABeeper) { dance(); } turnoff(); } }