/*
* 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* --------------------...
- 在文章 《说说我从阅读小白到阅读王者的大事记》中我提到 这次休假,我做出最新决定:进入知识管理+主题阅读的“快速通...