Lecture/컴퓨터프로그래밍및실습/DoubleBeepers
Retired DISLab
< Lecture | 컴퓨터프로그래밍및실습
문제) 첫번째 그림에서와 같이 비퍼가 쌓여있을 때 그 수를 두 배 증가시키는 방법은?
import stanford.karel.SuperKarel; public class DoubleBeepers extends SuperKarel { public void run() { move(); DoubleBeepersInPile(); moveBackward(); } private void DoubleBeepersInPile() { while (beepersPresent()) { pickBeeper(); putTwoBeepersNextDoor(); } movePileNextDoorBack(); } private void putTwoBeepersNextDoor() { move(); putBeeper(); putBeeper(); moveBackward(); } private void movePileNextDoorBack() { move(); while (beepersPresent()) { moveOneBeeperBack(); } moveBackward(); } private void moveOneBeeperBack() { pickBeeper(); moveBackward(); putBeeper(); move(); } private void moveBackward() { turnAround(); move(); turnAround(); } public static void main(String[] args) { String[] newArgs = new String[args.length + 1]; System.arraycopy(args, 0, newArgs, 0, args.length); newArgs[args.length] = "code=" + new SecurityManager(){ public String className() { return this.getClassContext()[1].getCanonicalName(); } }.className(); SuperKarel.main(newArgs); } }