FindCenter (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 FindCenter extends IKarelProgram { public void onStart() { IKarel karel = getIKarel(); int width = measureWidth(karel); move(karel, width / 2); karel.paintCorner(RED); } int measureWidth(IKarel karel) { int len = 1; while (karel.frontIsClear()) { karel.move(); len++; } karel.turnAround(); moveToWall(karel); karel.turnAround(); return len; } void move(IKarel karel, int step) { for (int i = 0; i < step; i++) karel.move(); } void moveToWall(IKarel karel) { while (karel.frontIsClear()) karel.move(); } public static void main(String[] args) { IKarelProgram.main(args, new SimpleKarel()); } }