机器人与代码
学习Java程序的组织方式,并编写代码来控制机器人。
下面的代码创建了一个位于迷宫中的机器人。
1import com.educative.robot.*; 2 3// 一个在迷宫中创建机器人的程序 4class RobotDemo { 5 6 public static void main(String[] args) { 7 // 设置变量来存储机器人和迷宫 8 Robot robbie; 9 Maze maze; 10 11 // 创建机器人和迷宫,并将机器人添加到迷宫中 12 robbie = new Robot(0.0, 0.0, "red"); 13 maze = new Maze(8, 8, 50); 14 maze.add(robbie); 15 16 // 设置机器人移动方向: 17 robbie.setDirection("east"); 18 19 // 让迷宫中的物体进行一次回合的移动: 20 maze.turn(); 21 } 22}
不久之后,你将为迷宫添加墙壁,并让机器人完成一些有趣的行为。作为第一步,请修改一行代码,使机器人向下朝迷宫底部移动。修改后运行你的代码。
提示:目前有几行代码你可能还不需要理解。robbie.setDirection("east") 指示机器人向右移动。请确保你选择的方向全部使用小写字母,不要遗漏任何标点符号。
自己编写代码:方块舞
代码按出现的顺序逐行执行。
将代码修改为让机器人沿一个小正方形移动:先向南(向下),再向东,然后向北,最后向西。每次调用 robbie.setDirection() 后,都需要使用 maze.turn() 方法。这告诉迷宫模拟机器人一回合的动作(大约一秒时间)。
提示:你需要编写八行代码。可以自由复制并粘贴 robbie.setDirection("east"); 和 maze.turn();,然后根据需要修改方向。
代码组织
代码分为两种类型:一种是用于组织程序结构的代码(就像食谱书按章节和菜谱分类一样),另一种是真正让计算机执行操作的代码。
注释
注释有助于帮助人类读者理解代码意图。计算机忽略以 // 开头的整行内容。这种文本称为 注释,仅用于帮助人类理解代码的目的。计算机也忽略空行;空行只是用来分隔代码块,方便人类阅读。现在请阅读上面代码中的注释。
代码按类和方法组织
我们先来看第一个程序的组织部分。以下是去除执行代码后的组织结构:
1// 一个名为 RobotDemo 的程序,用于在迷宫中创建机器人 2class RobotDemo { 3 4 public static void main(String[] args) { 5 // 主程序代码放在这里 6 7 } 8}
class RobotDemo { 这一行告诉计算机开始一个新的代码段,称为 类,名称为 RobotDemo。花括号 { 标识该代码段的开始,第8行的闭合花括号 } 表示该代码段结束。
在一个类中,代码被组织成称为 方法 的部分。复杂的代码 public static void main(String[] args) 只是用来定义一个名为 main 的方法。该方法从第4行的花括号开始,到第7行的花括号结束。
main 方法中的代码行
为了清晰地展示结构,类 RobotDemo 内部的代码(在其花括号之间)缩进一级,而 main 方法内部的代码则进一步缩进。让我们看看 main 方法中的代码:
1import com.educative.robot.*; 2 3// 一个在迷宫中创建机器人的程序 4class RobotDemo { 5 6 public static void main(String[] args) { 7 // 设置变量来存储机器人和迷宫 8 Robot robbie; 9 Maze maze; 10 11 // 创建机器人和迷宫,并将机器人添加到迷宫中 12 robbie = new Robot(0.0, 0.0, "red"); 13 maze = new Maze(8, 8, 50); 14 maze.add(robbie); 15 16 // 设置机器人移动方向: 17 robbie.setDirection("east"); 18 19 // 让迷宫中的物体进行一次回合的移动: 20 maze.turn(); 21 22 } 23}
第6至13行设置了 Robot 对象 和 Maze 对象,并将它们的引用存储在变量 robbie 和 maze 中。
代码 robbie.setDirection("east"); 指示机器人 robbie 在迷宫中向东移动。标点符号很重要:robbie 后面的点是必需的,括号和引号也不能缺少。大小写也很重要:setDirection 是命令名称;setdirection 不合法。合法的方向包括 "north"、"east"、"south" 和 "west"。
如果设置机器人速度后程序立即结束,机器人没有足够时间移动。turn 方法调用告诉迷宫动画化迷宫中所有物体的动作,持续一秒钟;你可以把它想象成游戏中的一回合。