class program { define half-turn() { turnleft(); turnleft(); } define go-back() { half-turn(); if (frontIsClear) { move(); } half-turn(); } define tile(odd) { if (notNextToABeeper) { if (! iszero(odd)) { putbeeper(); } iterate (4) { if (frontIsClear) { move(); if (iszero(odd)) { tile(1); } else { tile(0); } } turnleft(); } } go-back(); } program() { tile(1); turnoff(); } }