机器人从面向东的位置 (0,0) 开始。沿着该行随机放置几个蜂鸣器堆栈,每个蜂鸣器都包含许多蜂鸣器。机器人从面向东的位置 (0,0) 开始。沿着该行随机放置几个蜂鸣器堆栈,每个蜂鸣器都包含许多蜂鸣器。可能有不同数量的蜂鸣器堆栈。但是位置 (0,0) 总是有一个蜂鸣器堆栈,并且位置 (16,0) 总是有一个蜂鸣器堆栈-(机器人世界的尽头)。
需要编写一个方法,使机器人沿行移动,同时拾取每个蜂鸣器堆栈。该方法不应返回任何值且不带参数。在机器人拾取最后一个堆栈后,程序应打印总共拾取了多少个蜂鸣器。消息应如下所示: Picked up n beepers,其中 n 是拾取的蜂鸣器数量。程序必须定义和使用这两个附加方法: moveRobotToNextStack() ,它将机器人向前移动,直到找到下一个堆栈和 pickUpBeeperStack(),它拾取堆栈中的所有蜂鸣器。我的代码:
public class Q4 {
void pickUpAllStacks() {
int counter=0;
pickUpBeeperStack();
moveRobotToNextStack();
counter += pickUpBeeperStack();
print("Picked up "+ counter +" beepers");
}
void moveRobotToNextStack() {
while(isSpaceInFrontOfRobotClear()) {
moveRobotForwards();
pickUpBeeperStack();
}
}
int pickUpBeeperStack() {
int counter=0;
while(isItemOnGroundAtRobot()) {
pickUpItemWithRobot();
counter++;
}
return counter;
}
}
我无法让计数器计数所有堆栈中的蜂鸣器。