我需要编写名为clearStacks()的方法和另一个称为pickUpStack()的方法,如下所示:
-
pickUpStack() 应该拿起一堆蜂鸣器,计数并打印出它的大小。它应该计算蜂鸣器并打印出堆栈中有多少。
-
clearStacks() 应该清除一排蜂鸣器。它应该调用pickUpStack()来完成拾取一个堆栈的工作。
我的代码包括蜂鸣器的总数,但是我需要写下从每个堆栈中拾取的蜂鸣器数量。
int pickUpStack()
{
int numBeeper=0;
while(isItemOnGroundAtRobot())
{
pickUpItemWithRobot();
++numBeeper;
}
return numBeeper;
}
void moveRobotToNextStack()
{
while(!isItemOnGroundAtRobot()&&!isRobotFacingWall())
moveRobotForwards();
}
void clearStacks()
{
int numBeeper=0;
numBeeper=pickUpStack();
while(!isRobotFacingWall())
{
moveRobotToNextStack();
numBeeper+=pickUpStack();
}
println("Beepers: "+numBeeper);
}
您可以通过多种方式统计从每个堆栈中拾取的蜂鸣器数量。 你选择哪一个实际上取决于你的要求。
从pickUpStack()
方法打印它:
int pickUpStack()
{
int numBeeper=0;
while(isItemOnGroundAtRobot())
{
pickUpItemWithRobot();
++numBeeper;
}
println("Beepers from current stack" + numBeeper);
return numBeeper;
}
或者保留返回值的List
void clearStacks()
{
List beeperList = new ArrayList();
int numBeeper=0;
numBeeper=pickUpStack();
while(!isRobotFacingWall())
{
moveRobotToNextStack();
int currentBeepers = pickUpStack();
beeperList.add(currentBeepers);
numBeeper+=currentBeepers ;
}
for(int i = 0; i< beeperList.size(); i++)
println("Stack " + i + " contains " + beeperList.get(i) + " beepers");
println("Total beepers: "+numBeeper);
}