您的位置:首页 > 编程语言

斯坦福大学开放课程:编程方法.03/第三课练习:karel 算数(将未知数量beeper变为X倍)

2011-01-28 02:20 274 查看
/*本代码是 斯坦福大学公开课《编程方法》第三课视频第18分钟,
讲解的karel将beeper变为双倍的联系。
本代码和老师的代码略有不同。
不同点在于,将双倍的beeper放在自己原来的位置,
然后在把所有beeper放回beeper原来的位置
*/
import stanford.karel.*;
public class OurDoubleBeepers extends SuperKarel {
public void run (){
move();
let_beeper_double_side();
moveBack();
move_beeper_back();
}
//	树根:走到beeper上——把beeper变成双倍并放在旁边——回到双倍beeper上
//	把双倍的beeper放回原来的地方
private void let_beeper_double_side(){
while (beepersPresent()){
pickBeeper();
moveBack();
putBeeper();
putBeeper();
move();
}
}
//	让karel去把beeper变双倍并放在旁边
private void move_beeper_back(){
while(beepersPresent()){
pickBeeper();
move();
putBeeper();
moveBack();
}
}
//	让karel把已经是双倍了的beeper放回原处
private void moveBack(){
turnAround();
move();
turnAround();

}
//	退一步

}


既然可以通过这个方法机型乘数关系的运作,那么除数应该也可以,进而推倒出其他log、次方、tan/sin/cosin等。只是。。。太晚了,有些累,看看梦里会不会想出来这些运算方法的Code。从底层来说,这样运算效率好像低的可怜,稍微大一点的乘数,让karel要做N久才能完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐