首页 > 代码库 > cs106a 作业及其他

cs106a 作业及其他

   cs106s是斯坦福一门叫做编程方法学的课的编号。这门课面向初学编程者,使用的语言是java。课程资源网上都有,我决定把附带的作业自己动手做一下贴在这里。有错漏不足之处欢迎读者指正。

  Assignment 1

  problem #1

  这是个简单的移动Karel的问题。问题很简单,就是移动Karel到方框外的“报纸”处,捡起,然后回到原地。代码如下:

  

  import stanford.karel.*;

  public class CollectNewspaperKarel extends SuperKarel {
  public void run(){
  move();
  move();
  turnRight();
  move();
  turnLeft();
  move();
  pickBeeper();
  turnLeft();
  turnLeft();
  move();
  move();
  move();
  turnRight();
  move();

 }
}

 problem #2

 这个问题也很简单,就是要求Karel能够使得图中每隔4列的列中都填满beeper(已经有的地方不可重复),起始位置是(1,1)。

import stanford.karel.*;

public class StoneMasonKarel extends SuperKarel {

public void run(){
repair();
comeback();
while (frontIsClear()){
for(int i=0;i<4;i++){
move();
}
repair();
comeback();
}


}
private void repair(){
turnLeft();
while (frontIsClear()){
if (noBeepersPresent()){
putBeeper();
}
move();
}
if (noBeepersPresent()){
putBeeper();
}

}
private void comeback(){
turnLeft();
turnLeft();
while (frontIsClear()){
move();
}
turnLeft();
}
}

 

cs106a 作业及其他