斯坦福大学:编程方法学 Lesson three

1.common errors(OBOB)

2.comment 注释

/*   */  段注释

//         行注释

3.decomposition    “Top  Down design”

    分解      自顶向下设计

4.doublebeeper

 1 import stanford.karel.*;
 2 public class DoubleBeeper extends Karel{
 3     int num=0;
 4     public void run(){
 5         move();
 6         doublebeeper();
 7         moveback();
 8     }
 9     public void moveback(){
10         turnAround();
11         move();
12         turnAround();
13     }
14     public void turnAround(){
15         turnLeft();
16         turnLeft();
17     }
18     public void doublebeeper(){
19         while(beepersPresent()){
20             pickBeeper();
21             num++;
22         }
23         for(int i=0;i<2*num;i++){
24             putBeeper();
25         }
26     }
27 }

5.cleanBeeper

 1 import stanford.karel.*;
 2 public class CleanBeeper extends Karel{
 3     public void run(){
 4             cleanRowBeeper();
 5             while(leftIsClear()){
 6             rightGoTop();
 7             cleanRowBeeper();
 8             if(rightIsClear()){
 9                 leftGoTop();
10                 cleanRowBeeper();
11             }
12             else{
13                 turnAround();
14             }
15         }
16     }
17     public void cleanRowBeeper(){
18         while(frontIsClear()){
19             if(beepersPresent())
20                 pickBeeper();
21             move();
22         }
23         if(beepersPresent())
24             pickBeeper();
25     }
26     public void rightGoTop(){
27         turnLeft();
28         move();
29         turnLeft();
30     }
31     public void leftGoTop(){
32         turnRight();
33         move();
34         turnRight();
35     }
36     public void turnRight(){
37         turnLeft();
38         turnLeft();
39         turnLeft();
40     }
41     public void turnAround(){
42         turnLeft();
43         turnLeft();
44     }
45 }

时间: 2024-08-05 02:25:41

斯坦福大学:编程方法学 Lesson three的相关文章

斯坦福大学:编程方法学 Lesson two

1.turnRight的使用: 1 import stanford.karel.*; 2 public class Mykarel01 extends Karel{ 3 public void run(){ 4 move(); 5 pickBeeper(); 6 move(); 7 turnLeft(); 8 move(); 9 move(); 10 turnRight(); 11 move(); 12 putBeeper(); 13 move(); 14 } 15 public void tu

《斯坦福大学公开课:编程方法学》随笔

这是观看网易公开课 Mehran Sahami教授的<斯坦福大学公开课:编程方法学>后的随笔. 目前只看到第三次课,<Karel与Java>,我的收获有以下要点: 1.软件工程跟普通的写代码是不同的.软件应该考虑很多东西,比如:可移植性.便于升级维护等等,而不仅仅是写出代码实现功能那么简单. 2.代码是写给机器执行的,但更重要的是人要让人能看懂.(代码后期维护等等的工作量或者时间是写代码的10倍及更多,所以让代码更规范更易被人读懂很重要) 3.准确定义一个函数.一个类.一个包的功能

斯坦福大学:编程方法学 第0话 karel环境搭建

官网:http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111 1.jdk的安装(选择机器对应版本下载安装) http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR 注意事项:需安装jdk1.6及以下的版本ka

cs106a编程方法学作业解答(3)

此次要求我们做一个打砖块的游戏.打砖块相信大家都玩过,介绍什么的就略去了.直接贴代码: 1 /* 2 * File: Breakout.java 3 * ------------------- 4 * Name: 5 * Section Leader: 6 * 7 * This file will eventually implement the game of Breakout. 8 */ 9 10 import acm.graphics.*; 11 import acm.program.*;

cs106a编程方法学作业解答(4)(Hangman)

我发现assignment4有两种版本,除了上篇文章写的Yahtzee游戏,还有一种要求写一个叫做hangman的猜单词游戏的版本.大概是同一课程不同年份的内容有些出入的原因.这个作业我也做了.代码如下: 首先是Hangman.java的 /* * File: Hangman.java * ------------------ * This program will eventually play the Hangman game from * Assignment #4. */ import

斯坦福大学 iOS 开发公开课总结

 斯坦福大学 iOS 开发公开课总结 前言 iPhone 开发相关的教程中最有名的,当数斯坦福大学发布的 “iPhone 开发公开课 “ 了.此公开课在以前叫做<iPhone 开发教程>,今年由于平板电脑的流行,所以也加入了 ipad 开发相关的课程.在 网易公开课 上,有 该教程 的 2010 年录象,并且前面 15 集带中文字幕文件,非常适合初学者学习. 在这里顺便说一下,网易公开课上的 28 集其实并不需要全部看完.真正的课程只有前面 12 集.后面的课程都是请一些业界的名人讲他们成功的

Deep Learning 十_深度学习UFLDL教程:Convolution and Pooling_exercise(斯坦福大学深度学习教程)

前言 理论知识:UFLDL教程和http://www.cnblogs.com/tornadomeet/archive/2013/04/09/3009830.html 实验环境:win7, matlab2015b,16G内存,2T机械硬盘 实验内容:Exercise:Convolution and Pooling.从2000张64*64的RGB图片(它是the STL10 Dataset的一个子集)中提取特征作为训练数据集,训练softmax分类器,然后从3200张64*64的RGB图片(它是th

Deep Learning九之深度学习UFLDL教程:linear decoder_exercise(斯坦福大学深度学习教程)

前言 实验内容:Exercise:Learning color features with Sparse Autoencoders.即:利用线性解码器,从100000张8*8的RGB图像块中提取彩色特征,这些特征会被用于下一节的练习 理论知识:线性解码器和http://www.cnblogs.com/tornadomeet/archive/2013/04/08/3007435.html 实验基础说明: 1.为什么要用线性解码器,而不用前面用过的栈式自编码器等?即:线性解码器的作用? 这一点,Ng

Deep Learning 12_深度学习UFLDL教程:Sparse Coding_exercise(斯坦福大学深度学习教程)

前言 理论知识:UFLDL教程.Deep learning:二十六(Sparse coding简单理解).Deep learning:二十七(Sparse coding中关于矩阵的范数求导).Deep learning:二十九(Sparse coding练习) 实验环境:win7, matlab2015b,16G内存,2T机械硬盘 本节实验比较不好理解也不好做,我看很多人最后也没得出好的结果,所以得花时间仔细理解才行. 实验内容:Exercise:Sparse Coding.从10张512*51