机器人从面向东方的位置(0,0)开始。沿着该行随机放置几个蜂鸣器堆栈,每个堆栈包含许多蜂鸣器。机器人从朝东的位置(0,0)开始。沿着该行随机放置几个蜂鸣器堆栈,每个堆栈包含许多蜂鸣器。可能存在不同数量的蜂鸣器堆栈。但是在位置(0,0)总是有一个蜂鸣器堆栈,并且在位置(16,0)总是一个蜂鸣器堆栈 - (机器人世界的结束)。
需要编写一种方法,让机器人沿着行移动,随着它移动每个蜂鸣器堆栈。该方法应该不返回任何值并且不带参数。 机器人拿起最后一个堆栈后,程序应该打印出总共拾取了多少个蜂鸣器。 消息应如下所示:拾起蜂鸣器, 其中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;
}
}
我不能在所有堆栈中计数蜂鸣器。
答案 0 :(得分:0)
您可以将counter
声明为对象级变量:
int counter=0;
void pickUpAllStacks() {
pickUpBeeperStack();
moveRobotToNextStack();
counter += pickUpBeeperStack();
print("Picked up "+ counter +" beepers");
}
void moveRobotToNextStack() {
while(isSpaceInFrontOfRobotClear()) {
moveRobotForwards();
pickUpBeeperStack();
}
}
int pickUpBeeperStack() {
while(isItemOnGroundAtRobot()) {
pickUpItemWithRobot();
counter++;
}
return counter;
}
干杯!!