/*
* File: MidpointFindingKarel.java
* -------------------------------
* When you finish writing it, the MidpointFindingKarel class should
* leave a beeper on the corner closest to the center of 1st Street
* (or either of the two central corners if 1st Street has an even
* number of corners). Karel can put down additional beepers as it
* looks for the midpoint, but must pick them up again before it
* stops. The world may be of any size, but you are allowed to
* assume that it is at least as tall as it is wide.
*/
import stanford.karel.*;
public class MidpointFindingKarel extends SuperKarel {
public void run(){
if(frontIsClear()){
putLineBeepers(); // fill the line with beepers
turnBack();
move();
// pick all beepers from side to middle
while(frontIsClear()&&beepersPresent()){
pickBeeper();
move();
while(frontIsClear()&&beepersPresent()){
move();
}
turnBack();
move();
//if(beepersPresent())pickBeeper();
//move();
}
//turnBack();
//move();
putBeeper();// put one at the middle
}else
putBeeper();
}
private void putLineBeepers(){
while(frontIsClear())
{
move();
putBeeper();
}
pickBeeper();
}
private void turnBack(){
turnLeft();
turnLeft();
}
}
1
最新推荐文章于 2019-12-15 19:29:49 发布