RepairPillar (KarelOOP2)
Retired DISLab
package cp.java.week4; import hufs.dislab.karel.IKarel; import hufs.dislab.karel.IKarelProgram; import hufs.dislab.karel.SimpleKarel; @SuppressWarnings("serial") public class RepairPillar extends IKarelProgram { public void onStart() { IKarel karel = getIKarel(); repairPillar(karel); while (karel.frontIsClear()) { moveToNextPillar(karel); repairPillar(karel); } } void repairPillar(IKarel karel) { karel.turnLeft(); if (!karel.beepersPresent()) karel.putBeeper(); while (karel.frontIsClear()) { karel.move(); if (!karel.beepersPresent()) karel.putBeeper(); } karel.turnAround(); moveToWall(karel); karel.turnLeft(); } void moveToWall(IKarel karel) { while (karel.frontIsClear()) karel.move(); } void moveToNextPillar(IKarel karel) { for (int i = 0; i < 4; i++) karel.move(); } public static void main(String[] args) { IKarelProgram.main(args, new SimpleKarel()); } }