/*
* File: StoneMasonKarel.java
* --------------------------
* The StoneMasonKarel subclass as it appears here does nothing.
* When you finish writing it, it should solve the "repair the quad"
* problem from Assignment 1. In addition to editing the program,
* you should be sure to edit this comment so that it no longer
* indicates that the program does nothing.
*/
import stanford.karel.*;
public class StoneMasonKarel extends SuperKarel {
public void run(){
while(frontIsClear()){
turnEast(); //将起始位置朝东
SetColumnStone(); //将一列全部填满
turnBack(); //填满一列后回到该列下方
move4times(); //移动四列
}
//为了让最后一列也可以判断,需要加上最后一次循环
SetColumnStone(); //将一列全部填满
turnBack(); //填满一列后回到该列 下方
}
private void move4times() {
turnLeft();
for(int i=0;i<4;i++){
move();
}
}
//转向东
private void turnEast() {
while(notFacingEast()){ //如果不是朝东,向左转,直到朝东
turnLeft();
}
}
//返回下方
private void turnBack() {
turnAround();
while(frontIsClear()){
move();
}
}
//填满一列
private void SetColumnStone() {
turnLeft(); //出发时向左拐
while(frontIsClear()){
if(noBeepersPresent()){ //判断当前位置是否有beeper
putBeeper();
}
move();
}
if(noBeepersPresent()){ //判断当前位置是否有beeper,防止最后一个判断错误
putBeeper();
}
}
}
stanford编程方法学karel作业一problem2
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 这两天准备把java的基础重新看一下,刚好看到之前只看了一个开头的斯坦福的编程方法学的视频,于是就重新开始从头看起...
- /** File: CheckerboardKarel.java* -----------------------...
- /** File: MidpointFindingKarel.java* --------------------...
- 在文章 《说说我从阅读小白到阅读王者的大事记》中我提到 这次休假,我做出最新决定:进入知识管理+主题阅读的“快速通...